Perl 基本構文

Perl は C、sed、awk、シェルスクリプト、およびその他多くのプログラミング言語の特性を借りており、構文はこれらの言語と似ている部分もありますが、独自の特徴もあります。

Perl プログラムは宣言と文で構成され、プログラムは上から下へ実行され、ループ、条件制御を含み、各文はセミコロンで;終了します。

Perl 言語には厳密な書式規約はなく、自分の好みのスタイルでインデントすることができます。


最初の perl プログラム

対話型プログラミング

コマンドラインで-eオプションを使用して文を入力しコードを実行できます。例は次のとおりです。

$ perl -e 'print "Hello World\n"'

上記のコマンドを入力して Enter キーを押すと、出力結果は次のようになります。

Hello World

スクリプト型プログラミング

次のコードをhello.plファイルに置きます:

例

#!/usr/bin/perl # "Hello, World" を出力 print "Hello, world\n";

コード内の/usr/bin/perlは perl インタープリタのパスです。このスクリプトを実行する前に、ファイルに実行権限があることを確認する必要があります。まずファイルの権限を 0755 に変更できます。

$ chmod 0755 hello.pl 
$ ./hello.pl 
Hello, world                   # 输出结果

print は括弧を使用して文字列を出力することもできます。次の 2 つの文は同じ結果を出力します。

print("Hello, world\n");
print "Hello, world\n";

スクリプトファイル

perl コードはテキストファイルに記述でき、拡張子として .pl、.PL を使用します。

ファイル名には数字、記号、文字を含めることができますが、スペースを含めることはできません。スペースの代わりにアンダースコア(_)を使用できます。

簡単な Perl ファイル名の例:

run_oob.pl

コメント

コメントを使用してプログラムを読みやすくすることは、良いプログラミング習慣です。

perl でコメントを付ける方法は、文の先頭に文字 # を使用することです。例:

# 这一行是 perl 中的注释

perl は複数行コメントもサポートしています。最も一般的な方法は、POD(Plain Old Documentation)を使用して複数行コメントを行うことです。方法は次のとおりです。

例

#!/usr/bin/perl # これは単一行コメントです print "Hello, world\n"; =podコメント これは複数行コメントです これは複数行コメントです これは複数行コメントです これは複数行コメントです=cut

上記のプログラムを実行すると、出力結果は次のようになります。

Hello, world

注意:

  • =pod、=cut は行頭にのみ置くことができます。
  • = で始まり、=cut で終わります。
  • = の後ろは文字を続ける必要があります。=cut の後ろは続ける必要はありません。

Perl における空白

Perl インタープリタは空白の数に関係なく、次のプログラムも正常に実行できます。

例

#!/usr/bin/perl print "Hello, world\n";

上記のプログラムを実行すると、出力結果は次のようになります。

Hello, world

ただし、スペースや改行が文字列内にある場合は、そのまま出力されます。

例

#!/usr/bin/perl # 改行を出力します print "Hello world\n";

上記のプログラムを実行すると、出力結果は次のようになります。

Hello
          world

スペース、タブ、空行などのあらゆる種類の空白は、引用符の外にある場合はインタープリタによって無視され、引用符の中にある場合はそのまま出力されます。


一重引用符と二重引用符

perl で文字列を出力するには、一重引用符と二重引用符を使用できます。次に示すとおりです。

例

#!/usr/bin/perl print "Hello, world\n"; # 二重引用符 print 'Hello, world\n'; # 一重引用符

出力結果は次のとおりです。

Hello, world
Hello, world\n

結果からわかるように、二重引用符の \n は改行を出力しましたが、一重引用符では出力されませんでした。

Perl の二重引用符と一重引用符の違い:二重引用符は一部のエスケープ文字と変数を正しく解析できますが、一重引用符は解析できずそのまま出力します。

例

#!/usr/bin/perl $a = 10; print "a = $a\n"; print 'a = $a\n';

出力結果は次のとおりです。

a = 10
a = $a\n

Here ドキュメント

Here ドキュメントは、heredoc、hereis、here-文字列、here-スクリプトとも呼ばれ、コマンドラインシェル(sh、csh、ksh、bash、PowerShell、zsh など)やプログラミング言語(Perl、PHP、Python、Ruby など)で文字列を定義する方法です。

使用概要:

  • 1. セミコロンを続ける必要があります。そうしないとコンパイルに失敗します。
  • 2. EOF は他の任意の文字で置き換えることができます。終了識別子が開始識別子と一致していることを確認するだけで済みます。
  • 3. 終了識別子は行頭に単独で置かなければなりません(つまり、行頭から始まり、前後に空白や文字を接続してはいけません)。
  • 4. 開始識別子は引用符なし、または一重引用符・二重引用符付きにできます。引用符なしと二重引用符付きは同じ効果で、埋め込まれた変数とエスケープ記号を解釈します。一重引用符付きの場合は、埋め込まれた変数とエスケープ記号を解釈しません。
  • 5. 内容に引用符(一重引用符または二重引用符)を埋め込む必要がある場合、エスケープ文字を追加する必要はありません。それ自体が一重引用符と二重引用符をエスケープします。これは q と qq の使い方に相当します。

例

#!/usr/bin/perl $a = 10; $var = <<"EOF"; これはHereドキュメントの例、二重引用符を使用します。 ここに文字列と変数を入力できます。 例:a = $a EOF print "$var\n"; $var = <<'EOF'; これはHereドキュメントの例、一重引用符を使用します。 例:a = $a EOF print "$var\n";

上記のプログラムを実行すると、出力結果は次のようになります。

这是一个 Here 文档实例,使用双引号。
可以在这输入字符串和变量。
例如:a = 10

这是一个 Here 文档实例,使用单引号。
例如:a = $a

エスケープ文字

特別な文字を出力する必要がある場合は、バックスラッシュ(\)を使用してエスケープできます。たとえば、ドル記号($)を出力する場合:

例

#!/usr/bin/perl $result = "サンプル\"サンプル\""; print "$result\n"; print "\$result\n";

上記のプログラムを実行すると、出力結果は次のようになります。


Perl 識別子

Perl 識別子はユーザーがプログラミング時に使用する名前であり、プログラムで使用される変数名、定数名、関数名、文ブロック名などは総称して識別子と呼ばれます。

  • 識別子の構成要素:英文字(a〜z、A〜Z)、数字(0〜9)、アンダースコア(_)。
  • 識別子は英文字またはアンダースコアで始まります。
  • 識別子は大文字と小文字を区別します。$サンプル と $サンプル は異なる 2 つの変数を表します。
その他の拡張