使用して比較 perl -w -Mstrict
:
# case Alpha
print $c;
..。
# case Bravo
if (0) {
my $c = 1;
}
print $c;
..。
# case Charlie
my $c = 1 if 0;
print $c;
Alpha
そしてBravo
両方とも、グローバルシンボルに明示的なパッケージ名がないことについて不平を言っています。これは予想されることです。ただしCharlie
、同じ警告は表示されません。値が初期化されていないというだけで、次のようなにおいがします。
# case Delta
my $c;
print $c;
ボンネットの下で正確に何が起こっているのですか?(このようなものを本番コード用に作成することはできませんが)