>>188
あれ? それは use strict; していればきちんと怒られると思うのですが…….

パッケージ云々について少し伝わらなかったような気がするので補足します.
これはプログラムの最初でパッケージ宣言をしているかどうかは関係ありません.
>>180でエラーになっていたところ
 print "$hage\n"; # Error!
がありましたが,この場合でも
 print "$package_name::hage\n"; # OK
のように変数にパッケージ名を指定すれば怒られずに済むという事です.
この際そのパッケージが実際に存在しているかどうかは問いません.

ぱっと見で参照先が特定できない変数を見つけたらエラーを出す,
というのが use strict 'vars'; です.

あと,Typoを防ぐのであれば /perl -w するのがよろしいかと.