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


in reply to Dereference an Array of Hashes

While your code snippet could use some more context, I think your issue is that the outer for loop of your output is looking at @managers but your assignment is using %managers. You should get your expected result with

push( @{$managers{$mgr}}, $sub_tot_upd_by_mgr); push( @{$managers{$mgr}}, $sub_tot_events_by_mgr); for my $t ( keys %managers ) { for my $b (0 .. $#{$managers{$t}}) { print "$t and $b is $managers{$t}[$b]\n"; } }

This type of variable confusion could be quickly diagnosed with strict; see Use strict warnings and diagnostics or die. Also note $b is a special variable in the context of sort, and should generally be avoided for normal usage; see $b.

#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.