Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re: help to get hash elements

by linuxer (Deacon)
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...


Comment on Re: help to get hash elements
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://989884]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (7)
As of 2014-09-22 11:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (190 votes), past polls