如何根据Perl中的先前读取行执行操作?

Spa*_*ace 1 perl

我仍然在学习Perl脚本,并且在完成以下任务时需要帮助.

Sample data:


INV ,GOOD"
2405
INV ,BAD"
42
LOAD ,GOOD"
35588
LOAD ,BAD"
675
TRNS ,GOOD"
6
TRNS ,BAD"
122
Run Code Online (Sandbox Code Playgroud)

我想在GOOD和BAD下添加值.

GOOD, <sum of all good values>
BAD, <sum of all bad values>
Run Code Online (Sandbox Code Playgroud)

任何人都可以建议我读取第一行的代码,并将下一行的值放在一个数组中,以便添加后者.

180*_*ION 7

它可能是这样的:

while (<>)
{
  $good += <> if (m/GOOD/);
  $bad += <> if (m/BAD/)
}

print "GOOD: $good";
print "BAD: $bad";
Run Code Online (Sandbox Code Playgroud)

这只是将值相加并将它们打印出来,而不是将它们累积在一个数组中.尽管如此,将它更改为存储中间值并不会太难.