perl中的foreach循环如何与perl中的数组一起使用

时间:2018-03-18 04:35:02

标签: perl

这个程序应该执行三次,但只执行两次。 任何人都可以解释这个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";
}

1 个答案:

答案 0 :(得分:11)

perlsyn

  

如果LIST的任何部分是数组,如果在循环体内添加或删除元素,foreach将会非常混乱,例如使用splice。所以不要这样做。

由于这让Perl感到困惑,你似乎更加困惑。试图做什么?以相反的顺序打印元素?如果是这样,你可以使用

for my $ele (reverse @arr) {
   print("$ele\n");
}

for my $i (1..@arr) {
   my $ele = $arr[-$i];
   print("$ele\n");
}

while (@arr) {
   my $ele = pop(@arr);
   print("$ele\n");
}