in reply to Slicing a HoAoH

Your code works fine: Add following two lines to your code to see the results:
print join "\t",(map { $_->{NAME}.':'.$_->{ID}} @{$types{TYPE1}}),"\n" +; print join "\t",(map { $_->{NAME}.':'.$_->{ID}} @{$types{TYPE2}}),"\n" +;
It gives me:
Joe:022	Sue_B:089	Sue_C:090	Tom:108	
Sue_B:089	Sue_C:090