【问题标题】:Adding regex to an array in Perl在 Perl 中将正则表达式添加到数组中
【发布时间】:2014-09-18 18:24:05
【问题描述】:

我刚刚开始使用 PERL 来编写我正在做的一些脚本,以前从未使用过它,而且我在将一些值放入数组和计算总数时遇到了一些麻烦。

我有一个要解析的日志文件,并使用正则表达式在某些值出现时提取。我希望将这些值添加到数组中,然后在最后计算总数。 我试图解析的文件看起来像

...completed_pop_count: 0
...未完成:0
呼叫下一个
...completed_pop_count: 2
...未完成:0
呼叫下一个
...completed_pop_count: 2
...未完成:3
呼叫下一个

....继续

这是我目前所拥有的:

open (my $file, 'test.log');
while (<$file>){
   my @array = /.*completed_pop_count: (.*)$/;
   print @array;
}
close($file);

到这里的输出是这样的

022.....

在我看来,所有值都在数组的单个元素中。但是我需要将它们分开,以便我可以计算总和。

【问题讨论】:

    标签: arrays regex perl sum


    【解决方案1】:

    如果要向数组中添加元素,请使用push @arr, "element"

    use List::Util qw(sum);
    
    my @array;
    while (<$file>){
       push @array, $1 if /.*completed_pop_count: (.*)$/;
    }
    print "@array\n";
    
    print sum(@array), "\n";
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-26
      • 2019-01-08
      相关资源
      最近更新 更多