在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)
很可能使用迭代器上具有相同名称的嵌套循环来编写这样的代码,并且当您使用默认变量时会发生这种情况$_.你是否应该这样做是另一个问题.
会发生什么变量变得局部化.
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)
如果在嵌套循环中使用相同的变量名,则无法访问内循环内外循环的循环迭代器.所以在回答你的问题时,如果不是不正确的话,这是不切实际的.我认为,对于经验不足的程序员来说,它可能导致混乱,所以在这个意义上,我会说这不是一个好主意.