P0w3rK!d has asked for the wisdom of the Perl Monks concerning the following question:
Hello,
I built a hash as follows:
I built a hash as follows:
When I attempt to reference the hash I get the following:# build hash while() { ... $hshFoo{$key1}{$key2} = $strFileName; ... # key1 is a number # key2 is a sequential number }
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.xmlWhat 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
Back to
Seekers of Perl Wisdom