Go to the first, previous, next, last section, table of contents.


構文

Perl のスクリプトは宣言と実行文の列で構成されます。Perl で宣言の必要があ るのは、レポートフォーマットとサブルーティンだけです。これらの宣言につい ては、後ほど詳しく述べます。ユーザが造った初期化していないすべてのオブジェ クトは、代入などの明示的な操作で定義されない限り、ヌルもしくは 0 の値を 持っているとものとして扱われます。(しかし、未定義の値を使った場合に警告 を出すようにすることもできます。) sed や awk のスクリプトでは、実行文の 列は入力行ごとに繰り返して実行されますが、Perl では、実行文の列は 1 度実 行されるだけです。これは、入力ファイルに対して明示的に自分でループを行な わなければならないことを意味していますが、どのファイルのどの行に注目する かを自由に制御できることも意味しています。(本当は、私はウソを付いていま す。`-n'`-p' スイッチを使えば、暗黙にループを行なうことが できます。sed や awk のように必須のデフォルトになっていないだけのことで す。)

Perl は、ほとんどすべての部分で、自由形式の言語です。(理由は自明であると 思われますが、フォーマット宣言が唯一の例外となっています。)コメントは、 文字 "#" によって示され、行末までとなります。C のスタイルの /* */ を使お うとした場合には、文脈によって、割り算かパターンマッチかのいずれかに解釈 され、C++ の // コメントは、空の正規表現に見えます。使わないようにしましょ う。

宣言は実行文が置けるところであれば、どこにでも置けますが、実行文の列を実 行するのに影響を与えません。宣言はコンパイル時にのみ意味を持ちます。普通 は、すべての宣言をスクリプトの最初か、最後にまとめておきます。

Perl 5 から、サブルーティンを宣言することで、宣言した場所以降では、サブ ルーティン名をリスト演算子のようにして使うことができるようになりました。 サブルーティンは以下のように、定義しないで宣言することができます:

sub myname;
$me = myname $0 or die "can't get myname";

リスト演算子として働きはしますが、単項演算子ではありませんので、 || ではなく or を使うことに注意してください。

サブルーティンの宣言は、use 文を使ってインポートすることもできま す。

Perl 5 からはまた、実行文の列に字句スコープの変数宣言を、含めることがで きるようになりましたが、変数名を宣言することを除けば、宣言文は通常の実行 文と同様に働き、通常の実行文であるかのように他の文の中に埋め込まれるので す。


Go to the first, previous, next, last section, table of contents.

検索式: