%ThreeD = ( TV => { version3 => { lead => "fred", pal => "barney", }, }, ); # print the whole thing foreach $media ( keys %ThreeD) { print "$media @ {"; for $media_ver ( keys %{ $ThreeD{$media_ver} } ) { print "$media_ver { "; for $leaf_obj ( keys %{ $ThreeD{$media{$media_ver}} } ) { print "$leaf_obj=$ThreeD{$media}{$media_ver}{$leaf_obj} "; } } print "}\n"; }