• ベストアンサー

perl use strict エラーにならない?

perlの使い方を勉強しているのですが use strict;を記述すると 変数宣言が必要になるということですが 以下のように記述してもエラーになりません。 use strict;を記述すると my $a;がないと$a="Hello";で エラーになるのではないのでしょうか。 ---test.pl---- use strict; $a="Hello"; print $a; -------------- >test.pl Hello > (Windows7, ActivePerl)

質問者が選んだベストアンサー

  • ベストアンサー
  • kumoz
  • ベストアンサー率64% (120/185)
回答No.1

$a と $b は sort で使うためにあらかじめ用意されてるため、エラーにならないので使わないほうが賢明です。次のようにすると、確認することができます。 use strict; print "\$main::a $main::a\n"; $a = "Hello"; print "\$main::a $main::a\n";

yam2012
質問者

お礼

$a,$b以外にしましたらエラーが報告されました。 ありがとうございました。 なお、 >次のようにすると、確認することができます。 ということで ---test.pl--- use strict; print "\$main::a $main::a\n"; $a = "Hello"; print "\$main::a $main::a\n"; ------------- を実行すると ------------- C:\test>test.pl $main::a $main::a Hello C:\test> ------------- という結果になったのですが これは何を確認したことになるのでしょうか。

その他の回答 (1)

  • kumoz
  • ベストアンサー率64% (120/185)
回答No.2

> C:\test>test.pl > $main::a > $main::a Hello $a と $b はパッケージに属したグローバル変数で、$a と $b の代わりに $main::a と $main::b としても参照できます。上記は、コードの開始時は空で、代入後はその値が表示されることを示しています。

yam2012
質問者

お礼

今後の参考にさせていただきます。 ありがとうございました。

関連するQ&A