Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Hashes Question

by ColonelPanic (Friar)
on Nov 30, 2012 at 08:36 UTC ( #1006427=note: print w/replies, xml ) Need Help??

in reply to Hashes Question

Here is an example of how you could recurse through a structure of hash references in practice.

It uses the ref function to determine whether a given level is a hash reference.

use Modern::Perl; my %ref_chain = ( 'key1' => { 'key2' => { 'key3' => 'not a reference' } }, 'key4' => { 'key5' => 'no ref here' } ); sub traverse_hashes { my $hashref = shift; foreach my $key (keys %$hashref) { if (ref $hashref->{$key} eq 'HASH') { say "$key is a hash ref. Recursing."; traverse_hashes($hashref->{$key}); } else { say "$key is not a hash ref (value: $hashref->{$key})"; } } } traverse_hashes(\%ref_chain);

When's the last time you used duct tape on a duct? --Larry Wall

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1006427]
[shmem]: Lady_Aleena: fix it, or delete it ;-)
[Lady_Aleena]: shmem, I'm not sure how.
[shmem]: well, deleting is done with 'rm' :-P
[shmem]: you can break up the chain MP3::Tag->new($_)- >interpolate("\%S ") and test whether MP3::Tag->new($_) is true
[Lady_Aleena]: shmem, no to deletion.
[shmem]: can't help you there since that song is not on my bench
[Lady_Aleena]: shmem, I need to look at MP3::Tag to see how to get the date from one song.

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (5)
As of 2017-04-23 22:14 GMT
Find Nodes?
    Voting Booth?
    I'm a fool:

    Results (432 votes). Check out past polls.