How do I read two items at a time in a Perl foreach loop?

前端 未结 19 1644
你的背包
你的背包 2020-12-14 15:12

What I\'m looking for is something like:

@list = qw(1 2 3 4 5 6);
foreach (@list) {
  #perl magic goes here 
  print \"i: $i, j:$j\\n\";
}

19条回答
  •  一生所求
    2020-12-14 15:31

    Using a for loop would do what you need.

    use strict;
    use warnings;
    
    my @list = qw(1 2 3 4 5 );
    my $i = 0;
    
    for ($i = 0; $i < scalar(@list); $i++)
    {
        my $a = $list[$i];
        my $b = $list[++$i];
        if(defined($a)) {
            print "a:$a";
        }
        if(defined($b)) {
            print "b:$b";
        }   
        print "\n";
    }
    

    edit: I corrected my post to use the scalar function to retrieve the size of the array and also add some checking in case the array does not contain an even number of elements.

提交回复
热议问题