如何在 Perl 中计算 csv 中具有相同 id 的项目数



所以我有一个CSV文件,其中的列由:分隔。 在这种格式下,它看起来像这样 用户:组号

x:2
y:2
z:4
p:1
q:4

因此,组 x 在该组中

有 2 个用户,组 4 将有 2 个用户,组 1 将有 1 个用户。

我可以在perl中使用什么来执行此操作?我似乎想不通。我想把它们放到一个哈希中,但我无法弄清楚如何计算许多具有相同值的键。

哈希是最好的方法吗?

是的,哈希是正确的数据结构。

#!/usr/bin/perl
use warnings;
use strict;
my %count;
while (<DATA>) {
    chomp;
    my ($user, $group) = split /:/;
    ++$count{$group};
}
for my $group (keys %count) {
    print "Group $group has $count{$group} members.n";
}
__DATA__
x:2
y:2
z:4
p:1
q:4

最新更新