【发布时间】:2013-02-12 17:06:55
【问题描述】:
我想获取每个组的条目数,但它似乎给了我错误的答案。每个组中都有可能重复的元素。我得到的结果没有意义。我做错了什么?
my %hash;
while(<>)
{
chomp($_);
if(/(\d+)\t(\d+)/)
{
my $group = $1;
my $element = $2;
$hash{$group}{$element}=1;
}
}
foreach my $curr(keys %hash)
{
my $numElementsInCurr = keys %{$hash{$curr}};
print "$curr\t$numElementsInCurr\n";
}
【问题讨论】:
-
您确定您的输入格式正确吗?您可以使用
Data::Dumper检查%hash以查看它是否符合您的预期。 -
您应该提及为什么您认为它给了您错误的答案。只是发布代码做它应该做的根本不会有帮助。例如打印
%hash的 Dumper 输出并显示循环的输出。 -
你还没有完全证明这个问题。您的代码不太可运行(我已修复),但您没有提供导致错误发生的数据。获得您为该数据获得的输出以及您期望的输出也会很好。
标签: perl hash key hash-of-hashes