有没有办法可以在perl中跟踪for循环中迭代的元素数量: 就像使用特殊变量一样:
@arrayElements = (2,3,4,5,6,7,67);
foreach (@arrayElements) {
# Do something
# Want to know how may elements been iterated after
# some n number of elements processed without using another variable.
}
答案 0 :(得分:8)
要么只是随你计算:
my $processed = 0;
foreach my $element (@array_elements) {
...
++$processed;
}
或迭代索引:
foreach my $index (0..$#array_elements) {
my $element = $array_elements[$index];
...
}
答案 1 :(得分:4)
在perl5 v12及更高版本中,您可以使用each
迭代器:
while(my($index, $element) = each @array_elements) {
...;
}
然而,更便携的解决方案是迭代索引,并手动访问元素,如 ysth 所示。
在任何情况下,访问过的元素数量(包括当前元素)都是$index + 1
。
答案 2 :(得分:0)
您可以将数组中的元素数量视为
my $num = @arrayElements;
print $num;
OR
my $num = scalar (@arrayElements);
print $num;
OR
my $num = $#arrayElements + 1;
print $num;
为了找到迭代的元素数,我们可以使用下面的代码:
my $count = 0; #initially set the count to 0
foreach my $index(@arrayElements)
{
$count++;
}
print $count;