Perl5perlsyn - Perl の構文
[DESCRIPTION][単純実行文][複合実行文]
DESCRIPTION
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 からはまた、実行文の列に字句スコープの変数宣言を、含 めることができるようになりましたが、変数名を宣言することを除 けば、宣言文は通常の実行文と同様に働き、通常の実行文であるか のように他の文の中に埋め込まれるのです。

出典:Perl manpages Last change: Release 5.0 Patchlevel 00 5