Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
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 imbibing at the Monastery: (5)
As of 2014-07-12 21:06 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    When choosing user names for websites, I prefer to use:








    Results (241 votes), past polls