遅い→起動時

http://d.hatena.ne.jp/pmint/

Perlアンチパターン

パッケージスコープでmy宣言

下位スコープや副処理で宣言を忘れていても分からなくなってしまう。
本当に必要な宣言以外はブロックの中へ。

use strict;

my $b; # 悪い例

{
	my $g; # 良い例
	# このブロックに初期化コードなど、パッケージを読み込んだ時点で実行されるコードを。
}

sub s
{
	my $b; # 有っても無くてもプログラムが動いてしまう。
	
	# このブロックに$bの宣言が無い場合、ここではパッケージスコープの$b(悪い例)を使うことになってしまう。
	# strictプラグマを使っているにも関わらず、$bの変数宣言が抜けていることに気付けない。
}