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


パッケージのコンストラクタとデストラクタ

パッケージのコンストラクタとデストラクタとして機能する、2 つの特別なサブ ルーティン定義があります。それは、BEGIN ルーティンと END ルーティンです。 このルーティンでは sub は省略できます。

BEGIN サブルーティンは、できるだけ早く、つまり、たとえファイルの残りが解 析されていなくても、定義された瞬間に実行されます。ファイル内に複数の BEGIN ブロックを置くこともでき、定義された順番に実行されます。BEGIN ブロッ クは即座に実行されるため、サブルーティンなどの定義を他のファイルから読み 込んで、ファイルの残りの部分から見えるようにすることができます。

END サブルーティンは、できるだけ遅く、つまり、たとえ die() 関数の 結果であっても、インタプリタが終了するときに実行されます。(しかし、シグ ナルによって決壊してしまう時には実行されません。(できるものなら、) 自分 でトラップしなければなりません。)ファイル内に複数の END ブロックを置くこ ともでき、定義とは逆の順序で実行されます。つまり、ラストインファーストア ウト (LIFO) ということです。

Perl に `-n'`-p' スイッチを使ったときには、 BEGIN と END は、縮退したケースとして、awk と同じように動作します。


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

検索式: