http://www.perlmonks.org?node_id=125919


in reply to Accessing a Hash of Hashes

Your problem is how you copy the data from $VAR1 to %Status. This code works for me:
$VAR1 = { '1' => { '1' => { 'EMail' => 'norbert@thnwb.com', 'Name' => 'Norbert Bodkin' }, '5' => { 'EMail' => 'sue@thnwb.com', 'Name' => 'Sue Soup' } }, '2' => { '3' => { 'EMail' => 'max@thnwb.com', 'Name' => 'Max Grappler' } } }; my %Status = %$VAR1; my $status; for $status (keys %Status) { for (keys %{ $Status{$status} }) { print $Status{$status}{$_}{'Name'}, br; } }
The error message tells you, that instead of a hashref you have a value. If you post the code that copies $VAR1 to %Status, I would be able to help you further.

Also, hashes don't have order. So, if you want to do a sort on keys, you'll need to create a sorted array with those keys.