鈍足ランナーのIT日記

走るのが好きな5流のITエンジニアのブログ。

趣味の範囲は広いけど、どれも中途半端なクソブロガー楽しめるWebアプリを作ってあっと言わせたい。サーバーサイドPerl(Mojolicious)、クライアントサイドVue.js。Arduinoにも触手を伸ばす予定。

BEGINブロックとENDブロック

BEGINブロックとENDブロックのよばれる順番を調べたくて調査してみた。 以下のようにソースを書いてlibディレクトリの下に保存。

Hoge.pm

package Hoge;

use strict;
use warnings;

BEGIN{
print "Hoge BEGIN\n";
}

END{
print "Hoge END\n";
}

1;

Fuga.pm
package Fuga;

use strict;
use warnings;

BEGIN{
print "Fuga BEGIN\n";
}

END{
print "Fuga END\n";
}

1;

そんでもって、libの上の階層にcdしてから、以下を実行すると

$ perl -Ilib -MFuga -MHoge -e 'print "Hello World!\n"'
Fuga BEGIN
Hoge BEGIN
Hello World!
Hoge END
Fuga END

$ perl -Ilib -MHoge -MFuga -e 'print "Hello World!\n"'
Hoge BEGIN
Fuga BEGIN
Hello World!
Fuga END
Hoge END