在perl中循环

syl*_*mos 2 perl for-loop

my @array=(1..10);
for my $i (@array){$i++;}
print "array is now:@array";
Run Code Online (Sandbox Code Playgroud)

这是改变数组的值.为什么?

Gre*_*ill 6

这就是forPerl中声明的定义.请参阅文件foreach循环man perlsyn:

如果LIST的任何元素是左值,您可以通过修改循环内的VAR来修改它.相反,如果LIST的任何元素不是左值,则任何修改该元素的尝试都将失败.换句话说,foreach循环索引变量是您循环的列表中每个项的隐式别名.