如何将perl用于总结两个不同字段的逻辑条件

时间:2013-12-23 10:48:02

标签: perl

如何使用perl来汇总perl中两行中的各个字段

e.g。

1st row (headers):-  A|B|C|D|E|F
2nd row (values) :-  Z|date|ABC10|100.32|200.32
3rd row (values) :- Y|Date|ABC10|100.22|150.22
4th tow          :-  Z|Date|ABC22|122.2|23

我想为第2行和第3行添加E和F的值。和条件是一行的A应该是= Z而另一行应该等于= Y. 第2行和第3行中的B和C字段应相等。

共有200行,当条件A = Z时,出现Y,我必须添加这两行。

1 个答案:

答案 0 :(得分:0)

更新:您的问题现在稍微清楚了,所以我更新了代码。现在它将添加列D和E,前提是它们属于条件Y或Z.对于您的输入,这将对行2 - 4求和:

use strict; use warnings;

my @sums;
while (<$input>){
    my @split = split(/\|/);
    next unless /^Y|Z/;
    my $add = ($split[3] + $split[4]);
    push @sums, $add;
}

print Dumper \@sums;

输出:

$VAR1 = [
          '300.64',
          '250.44',
          '145.2'
        ];