my %master_hash;
for my $anon_hash_ref ( @AoH ) {
$master_hash{ $$anon_hash_ref{id} } += $$anon_hash_ref{value};
}
####
for my $anonhash ( @AoH ) {
$master_hash{ $$anonhash{id_a} } += $$anonhash{value_x};
$master_hash{ $$anonhash{id_b} } += $$anonhash{value_y};
}
####
for my $anonhash ( @AoH ) {
$master_hash{ "a".$$anonhash{id_a} } += $$anonhash{value_x};
$master_hash{ "b".$$anonhash{id_b} } += $$anonhash{value_y};
}
####
for my $anonhash ( @AoH ) {
my $newkey = join '_', 'a', $$anonhash{id_a}, 'b', $$anonhash{id_b};
# one way (HoH):
$master_hash{$newkey}{value_x} += $$anonhash{value_x};
$master_hash{$newkey}{value_y} += $$anonhash{value_y};
# another way (HoA):
$master_hash{$newkey}[0] += $$anonhash{value_x};
$master_hash{$newkey}[1] += $$anonhash{value_y};
}