http://qs1969.pair.com?node_id=256316

P0w3rK!d has asked for the wisdom of the Perl Monks concerning the following question:

Hello,
I built a hash as follows:
# build hash while() { ... $hshFoo{$key1}{$key2} = $strFileName; ... # key1 is a number # key2 is a sequential number }
When I attempt to reference the hash I get the following:
foreach $key (keys %hshFoo) { print " $key => $hshFoo{$key}\n"; }
Output:  
  6137 => HASH(0x1ddba60)
  2823 => HASH(0x1ddbd18)
  6598 => HASH(0x1ddbc88)
  4156 => HASH(0x1ddbd00)
Whereas "HASH(0x1ddba60)" contains:
6137 =>
    0 => file1.xml
    1 => file2.xml
    2 => file3.xml
What is the best way to reference the 2nd hash? I tried to create a temp hash of $hshFoo{$key} to loop through, but that failed. I need to be able to reference the 2nd key+value pair; in this case of the hash "HASH(0x1ddba60)". I tried this also...
foreach $key2 (keys $hshFoo{$key}) { ... } Type of arg 1 to keys must be hash (not hash element) at foo.pl line 341, near "}) " BEGIN not safe after errors--compilation aborted at foo.pl line 431.

-P0w3rK!d