Perl-对嵌套循环使用相同的变量被认为是不合适的?

Ila*_*man 2 perl

在for循环中,我通常这样做:

for my $i (0 .. 6){
###stuff to loop
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我多次使用$ i,它被认为是不正确的用法吗?例如:

(这些循环故意嵌套在一起)

for my $i (0 .. 6){
###some stuff
    for my $i (0 .. 30){
    ###double looped ...
    }
}
Run Code Online (Sandbox Code Playgroud)

TLP*_*TLP 7

很可能使用迭代器上具有相同名称的嵌套循环来编写这样的代码,并且当您使用默认变量时会发生这种情况$_.你是否应该这样做是另一个问题.

会发生什么变量变得局部化.

for my $i (1 .. 2) {
    # $i == 1 or 2
    for my $i (3 .. 4) {
    # $i == 3 or 4
    }
    # $i returns to the old value 1 or 2
}
Run Code Online (Sandbox Code Playgroud)

如果在嵌套循环中使用相同的变量名,则无法访问内循环内外循环的循环迭代器.所以在回答你的问题时,如果不是不正确的话,这是不切实际的.我认为,对于经验不足的程序员来说,它可能导致混乱,所以在这个意义上,我会说这不是一个好主意.