gpt4 book ai didi

perl - 为什么在内部范围内重新声明变量时 perl 不发出警告?

转载 作者:行者123 更新时间:2023-12-04 11:54:21 27 4
gpt4 key购买 nike

作为一个 perl 新手,我刚刚遇到了一个错误,我不小心做了类似的事情(示例简化):

my $i=0;
for(my $i=0;$i<10; $i++)
{
print $i;
}
print $i; # $i is zero, my code expected 9

来自 Why don't I get a warning when I redeclare the Perl foreach control variable?我了解这种行为是意料之中的;除非重新声明在同一范围内,否则我不应该收到警告。

但是,我不明白为什么会这样。为什么 perl 不会在这里发出警告?在我看来,这可能是导致错误的一个原因,而且通常不是故意的。是否有一些常见的情况,这是正常的编程风格,所以警告会很烦人?

最佳答案

Perl 不会对样式问题发出警告,但我发现很难相信有人会有意在不同的范围深度使用相同的 var 名称。

想到它可能有用的唯一情况是

{
my $x = $x;
... do some something that changes $x ...
}
# $x is restored here.

从好的方面来说,有一个 perlcritic rule找出这样的问题。

关于perl - 为什么在内部范围内重新声明变量时 perl 不发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16338522/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com