我有一系列哈希。我需要将符合某些标准的所有哈希值收集到可以一次处理一个的组中。我认为一个好方法是查看每个哈希值,确定它属于哪个组,然后将哈希值添加到新数组中。
我在确定要使用哪种数据结构时遇到一些麻烦。一系列哈希数组? (因此每个组都有一个父数组的元素,子数组包含哈希。)使用引用是否有更优雅的方法来执行此操作?
我的出发点是这样的:
foreach (@AoH) {
my $group = int( $_->{'ID'} / 10 );
... need to collect the hash $_ with other hashes that have the same $group ...
}
答案 0 :(得分:3)
我使用散列数组的散列,其中键是组。
my %HoAoH;
foreach (@AoH) {
my $group = int( $_->{'ID'} / 10 );
push @{$HoAoH{$group}}, $_;
}