有什么方法可以在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.
}

===============>>#1 票数:8

随便算什么:

my $processed = 0;
foreach my $element (@array_elements) {
    ...
    ++$processed;
}

或遍历索引:

foreach my $index (0..$#array_elements) {
    my $element = $array_elements[$index];
    ...
}

===============>>#2 票数:4 已采纳

在perl5 v12和更高版本中,可以使用each迭代器:

while(my($index, $element) = each @array_elements) {
  ...;
}

但是,更可移植的解决方案是遍历索引,并手动访问元素,如ysth所示。

无论如何,访问的元素数(包括当前元素)为$index + 1

===============>>#3 票数:0

您可能会获得数组中元素的数量为

    my $num = @arrayElements;
    print $num;

要么

   my $num = scalar (@arrayElements);
   print $num;

要么

   my $num = $#arrayElements + 1;
   print $num;

为了找到迭代的元素数量,我们可以使用以下代码:

my $count = 0;  #initially set the count to 0
foreach my $index(@arrayElements)
{
  $count++;
}
print $count;

  ask by Srivatsa Jenni translate from so

未解决问题?本站智能推荐:

2回复

如何在Perl中找到单个字符串的匹配正则表达式的位置? [重复]

这个问题已经在这里有了答案: 如何在Perl中找到正则表达式匹配项的位置? 5个答案 假设my $string = "XXXXXTPXXXXTPXXXXTP"; 如果我想匹配: $string =~ /TP/; 多次并为每个人返回职位,我将如何做? 我已
3回复

需要从Perl中的变量元素的哈希数组构建一个foreach语句

我在Perl中使用XML::Simple来解析XML文件,而我坚持如何构建循环以遍历哈希中数组的所有可能元素。 以下是打印数组第0个元素的方法: 使用“ hash vs. array”一词时,我的术语可能不正确,但是我试图遍历{Price}[$ref]所有元素 我试过了:
3回复

为什么我的Perl max()函数总是返回数组的第一个元素?

我是Perl的新手,我不想使用List :: Util max函数来查找给定数组的最大值。 当我测试下面的代码时,它只返回数组的第一个值,而不是最大值。
2回复

从数组perl索引字符串元素的值

我有一个数组,其中包含一些DNA序列作为存储在其元素中的字符串。 例如: print $array[0]; 给出如下输出: ACTAG (#每个序列中的第一个位置)。 我编写了这段代码,使我能够分析每个序列的第一个位置。 但是我不知道如何修改$ array [0]以便为每个位
4回复

如何在perl中将数组元素从一个数组放入另一个数组?

如果我有一个带有行的@array : 如何获得一个包含一列中所有元素的新@array2 ,所以@array2 = abbccd ? 谢谢!
2回复

如何使用foreach跳过数组中的第一个元素?

说我有一个数组: 现在我可以通过foreach迭代它: 但有没有办法从第二个(例如)迭代到最后一个? 提前致谢。
2回复

Perl:在Foreach循环中为数组元素分配引用

我真的很想弄明白这一点,但是我的脸因为不断撞到这堵砖墙而受到伤害。 我正在尝试加载9个文本文件,每个文件由7行7个字符的矩阵组成,每个7个字符由空格分隔,然后将每个引用的矩阵保存到数组中的元素。 我正在阅读每个文件中,但是当我访问我的数组时,所有元素都是相同的。 我一直在寻找解决方案,
1回复

如何在foreach循环内修改Perl数组中的元素?

我对这段代码的目标是清理一系列元素(一个URL列表,一些带有特殊字符,如% ),这样我最终可以将它与另一个URL的文件进行比较,并输出哪些匹配。 URL的列表来自.csv文件,第一个字段是我想要的URL(我使用快速if()语句跳过了一些其他条目)。 我的分隔符是| 在csv。 在其
1回复

如何将数组的元素称为索引数字值

我有一个由不同长度的字符串组成的@ORF数组。 我想摆脱少于50个字符的字符串,所以写了以下foreach循环: 我想知道splice的第二个参数应该是什么,我已经在Google上搜索了一下,但是我找不到一种将元素称为数值的方法。
2回复

Foreach循环仅作用于数组中第一个元素的一部分

我在目录中有五个fasta文件,可以将它们成功地放入数组中。 当我尝试通过foreach循环连续打开所有文件,以对每个文件执行正则表达式时,似乎仅打开目录中的第一个文件进行处理。 此外,当我尝试在第一个文件中打印整个序列时(通过未显示的诊断打印语句),该序列的前半部分将被忽略。 仅打印序列