比较使用 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;
引擎盖下到底发生了什么?(即使永远不应该为生产代码编写这样的东西)