作为一个perl新手,我只是碰到了一个我意外做了类似的事情(示例简化):
my $i=0;
for(my $i=0;$i<10; $i++)
{
print $i;
}
print $i; # $i is zero, my code expected 9
Run Code Online (Sandbox Code Playgroud)
从重新声明Perl foreach控制变量时,为什么不收到警告?我明白这种行为是可以预料的; 除非重新声明属于同一范围,否则我不应该收到警告.
但是,我不明白为什么会这样.为什么perl不会在这里发出警告?在我看来,它可能是错误的原因,通常不是故意的.是否有一些常见的情况,这是正常的编程风格,所以警告会很烦人?
Perl并不倾向于警告样式问题,但我发现很难相信有人会故意想在不同的范围深度拥有相同的var名称.
想到的唯一可能有用的案例是
{
my $x = $x;
... do some something that changes $x ...
}
# $x is restored here.
Run Code Online (Sandbox Code Playgroud)
从好的方面来说,有一个规则来识别这样的问题.perlcritic
| 归档时间: |
|
| 查看次数: |
361 次 |
| 最近记录: |