我有类似的东西:
for (@array) {
print "The value : $_ \n";
print "The current index : ???";
}
但是我不明白,在这样循环时如何获得@array
的当前索引。请帮助:)
答案 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