这个程序应该执行三次,但只执行两次.任何人都可以解释这个foreach循环如何在perl中工作.
#!/usr/bin/perl
use strict;
use warnings;
my @arr=("sandeepr", "vijay","vikas");
for my $i( @arr)
{
print @arr;
my $b=pop(@arr);
print "\n $b";
}
Run Code Online (Sandbox Code Playgroud)
ike*_*ami 11
如果LIST的任何部分是一个数组,
foreach如果你在循环体中添加或删除元素,将会非常困惑,例如splice.所以不要这样做.
由于这使得Perl感到困惑,你似乎更加困惑.试图做什么?以相反的顺序打印元素?如果是这样,你可以使用
for my $ele (reverse @arr) {
print("$ele\n");
}
Run Code Online (Sandbox Code Playgroud)
要么
for my $i (1..@arr) {
my $ele = $arr[-$i];
print("$ele\n");
}
Run Code Online (Sandbox Code Playgroud)
要么
while (@arr) {
my $ele = pop(@arr);
print("$ele\n");
}
Run Code Online (Sandbox Code Playgroud)