如何使用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,我必须添加这两行。
答案 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'
];