モジュールにおいて、BEGINは特別な関数で、モジュールをuseやrequireされた時に実行される。
主に初期化処理で使う。
豆知識 - 知っておくと役に立つ - Perl入門ゼミ
perl のモジュールインポートまわりの整理 - Please Sleep
perlのコードでよく見かけるrequire、use、BEGINの役割や関係についてまとめる | MooLog
CustomModule.pmをつくって、
BEGINが実行された時、"This is BEGIN."を出力。
最後の"1;"がないとエラーメッセージが出る。
BEGIN.plで、
useまたはrequireする。
$ vi BEGIN.pl $ vi CustomModule.pm $ perl BEGIN.pl This is BEGIN. $
useでもrequireでもコンパイル時実行としてBEGINが実行される。
requireは実行時評価と書いたけど、BEGINだけはどちらでもコンパイル時評価されるのかな。
requireはimportを呼ばないのが特徴だが、getcwdの関数名はimportで公開されるのかな。
この辺が微妙。
Sample/perl/BEGIN/BEGIN/src/BEGIN at master · bg1bgst333/Sample · GitHub