Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW

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}; } }


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?

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

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (12)
As of 2015-11-25 19:21 GMT
Find Nodes?
    Voting Booth?

    What would be the most significant thing to happen if a rope (or wire) tied the Earth and the Moon together?

    Results (686 votes), past polls