Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl-Sensitive Sunglasses
 
PerlMonks  

Re: help to get hash elements

by linuxer (Curate)
on Aug 26, 2012 at 22:13 UTC ( #989884=note: print w/replies, xml ) Need Help??


in reply to help to get hash elements

What about Access and Printing of a HASH OF HASHES?

Simply create a 2-level loop and iterate through the keys of each level.

# untested: my @urls; for my $outer ( keys %hash ) { for my $inner ( keys %{ $hash{$outer} } ) { # maybe check before, if entry "url" exists or is defined ... push @urls, $hash{$outer}->{$inner}->{url}; } }

update:

I missed last night that there is an anonymous array inside $hash{$outer}->{$inner}; so here's an updated code:

for my $outer ( keys %hash ) { for my $inner ( keys %{ $hash{$outer} } ) { push @urls, map { $_->{url} } @{ $hash{$outer}->{$inner} } } }

As the other answers point out, if there is only one "outer" and one "inner" key, you can skip the loops and access the inner referenced array directly...

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989884]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (13)
As of 2016-12-05 19:27 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (91 votes). Check out past polls.