0

我正在编写一个 perl 脚本,并在许多操作后获取值,如下所示:

'John', 10, .20
'John', 20, .05
'Paul', 50, .10
'Joe', 70, .03
'Joe', 12, .30

现在,我需要执行以下操作:

  1. 总结按第 1 列分组的第 2 列的值。
  2. 将第 2 列乘以第 3 列,然后再次找到按第 1 列分组的这些答案的总和。

我想看看这是否只能通过将此数组转换为基于第一列的哈希来完成,或者是否有更好的方法来做到这一点。

请注意,这不是家庭作业。我试图通过屏蔽原始值来简化数据。这些值属于上面给出的类型。

预期输出:

'John', 30, 0.1
'Paul', 50, 0.1
'Joe',  82, 0.06
4

1 回答 1

2

在尝试“清理”它以在此处发布时找出答案:

我的有效代码:

while (<FILE>)
{
    chomp($_);
    my ($name, $count, $percent) = split("\t");
    $hash{$name}{"count"} += $count;
    if ($count != 0)
    {
        $sonar_out_hash{$name}{"value"} += $percent * $count / 100;
    }
}

感谢@KrishnachandraSharma 坚持我发帖。

于 2013-03-07T10:34:33.737 回答