ちょっとした perl 初心者として、私はちょうどバグに出くわしました。
my $i=0;
for(my $i=0;$i<10; $i++)
{
print $i;
}
print $i; # $i is zero, my code expected 9
Perl の foreach 制御変数を再宣言すると警告が表示されないのはなぜですか?から 私は、この動作が想定されていることを理解しています。再宣言が同じスコープ内にない限り、警告を受け取るべきではありません。
しかし、なぜそうなのか理解できません。なぜ perl はここで警告を出さないのでしょうか? それはエラーの原因である可能性が高く、通常は意図されていないように思えます。これが通常のプログラミング スタイルであり、警告が煩わしいという一般的なケースはありますか?