in reply to Slicing a HoAoH

When I run your example, I get
$VAR1 = { 'TYPE1' => [ { 'ID' => '022', 'NAME' => 'Joe' }, { 'ID' => '089', 'NAME' => 'Sue_B' }, { 'ID' => '090', 'NAME' => 'Sue_C' }, { 'ID' => '108', 'NAME' => 'Tom' } ], 'TYPE2' => [ $VAR1->{'TYPE1'}[1], $VAR1->{'TYPE1'}[2] ] };
What you are getting (as indeed I am) is a structure containing references to the same scalar. In this case Data::Dumper has DWIMed and used $VAR1->{'TYPE1'}[1] to point back to the same instance of the scalar.

Hope this helps.

--
I'm Not Just Another Perl Hacker