$frameno = "1"; $drawerno = "12"; $tempno = "44"; # assignment $framearray->{$frameno}{$drawerno} = $tempno; # reassignment %new_hash = %{$framearray}; # or only particular hashes thereof %some_frame = %{ $framearray->{$frameno} }; # Now if we loop through %some_frame our keys are # $drawerno and our values are the values assigned above while ( ($drawer,$val) = each(%some_frame) ) { print "$drawer -> $val\n"; } # would print # 12 -> 44