【发布时间】:2014-02-05 16:07:40
【问题描述】:
我有一组哈希(使用 Tie::IxHash 保留键序列),我想比较每个键的值。哈希的数量可以变化。例如,我想计算键“1”被分配值“1”和“0”的次数。我知道如果我将散列放入一个散列数组中然后循环遍历它们,应该有一种很好的快速方法来计算值匹配,但是我被卡住了,无法自己弄清楚。
%hash1 = ( 1 => '1',
2 => '1',
3 => '0',
4 => '0',
);
%hash2 = ( 1 => '1',
2 => '1',
3 => '1',
4 => '0',
);
%hash3 = ( 1 => '1',
2 => '1',
3 => '0',
4 => '1',
);
%hash4 = ( 1 => '1',
2 => '0',
3 => '0',
4 => '1',
);
上述的预期结果是:
$key1: $agr1 = 4; $agr0 = 0;
$key2: $agr1 = 3; $agr0 = 1;
$key3: $agr1 = 1; $agr0 = 3;
$key4: $agr1 = 2; $agr0 = 2;
现在我最终做的是遍历第一个哈希的键,然后将它们与其他每个哈希进行比较,这显然是乏味和愚蠢的。
感谢您的帮助!
更正:我使用的是哈希,而不是哈希引用。相应地编辑了上面的代码。
【问题讨论】:
标签: perl hash comparison