Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^3: Finding hashes in hashes of hashes

by bobf (Monsignor)
on Dec 28, 2009 at 18:49 UTC ( #814649=note: print w/replies, xml ) Need Help??

in reply to Re^2: Finding hashes in hashes of hashes
in thread Finding hashes in hashes of hashes

The 'die' would go after the foreach (refer to the pseudocode that I posted). Note the comments below:

sub get_family_member { my @args = @_; my $who = shift @args; # <-- this var is not used my $families = shift @args; foreach my $family (%families) { if ($families->{$family}->{kid} eq "bart") { # <-- are you sure yo +u want to hard-code 'bart'? I think you need $who return $dfamilies->{$family}->{kid}; # <-- typo in hash name last; # <-- this will never be reached since it already returned } } # no matches found: die here }

Replies are listed 'Best First'.
Re^4: Finding hashes in hashes of hashes
by AnomalousMonk (Archbishop) on Dec 28, 2009 at 20:07 UTC

    bobf is quite right: the statements
        my @args = @_;
        my $who = shift @args;
        my $families = shift @args;
    are much better written as
        my ($who, $families) = @_;

    Also,  $families in the above example seems to be a hash reference,
    so use  %$families to dereference.

        for my $family (%$families) { ... }
    won't do what you want; use
        for my $family (keys %$families) { ... }
    to iterate over the keys of the referenced hash.

Re^4: Finding hashes in hashes of hashes
by cyphy (Initiate) on Dec 29, 2009 at 14:26 UTC
    Thank you! About the typo and the who.. This is what happens, when you try to change your code to only reflect relevant parts. Next time I'll simply copy it.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2023-02-06 00:30 GMT
Find Nodes?
    Voting Booth?
    I prefer not to run the latest version of Perl because:

    Results (33 votes). Check out past polls.