-2
我想获得每个组的条目数,但它似乎给了我错误的答案。每个组中都有可能会重复的元素。我得到的结果没有意义。我究竟做错了什么?如何获取散列perl哈希中的密钥数量?
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',看看它是否与您期望的一样。 – zigdon 2013-02-27 01:55:35
你应该提到你为什么认为它给你错误的答案。只是发布代码,做它应该是不会帮助的。例如打印'%hash'的Dumper输出并显示循环的输出。 – TLP 2013-02-27 02:01:36
你还没有完全证明这个问题。你的代码不太可运行(我已经修复),但是你没有提供导致错误发生的数据。获得该数据的输出以及您期望的输出也很好。 – ikegami 2013-02-27 02:06:38