如何在perl中循环遍历数组的索引号?

时间:2017-11-20 14:48:39

标签: arrays perl

我有类似的东西:

for (@array) {
    print "The value : $_ \n";
    print "The current index : ???";
}

但是我不明白,在这样循环时如何获得@array的当前索引。请帮助:)

2 个答案:

答案 0 :(得分:7)

不要遍历数组的元素;而是循环遍历数组的索引。

for (0 .. $#array) {
  print "The value : $array[$_]\n";
  print "The current index : $_\n";
}

给定一个名为@array的数组,特殊变量$#array将包含数组中最后一个元素的索引。因此,范围0 .. $#array将生成数组中所有索引的列表。

答案 1 :(得分:2)

从Perl 5.12开始,你可以对数组使用each(在它只用于哈希之前)。

#!/usr/bin/env perl

use strict;
use warnings;

my @array = qw(a b c);

while( my ($idx, $val) = each @array ) {
    print "idx=$idx, val=$val\n";
}

<强>输出

idx=0, val=a
idx=1, val=b
idx=2, val=c