Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot

Comment on

Here's a demo of a sub you might find useful. It descends the hash chain checking existence at each level. It returns [a reference to, to ensure logical truth] the value if everything exists.
#!perl use warnings; use strict; sub safe_exists { my ($href, @list_of_descent) = @_; use List::Util 'first'; if (first { not (exists $href->{$_} and $href=$href->{$_}) } @list_of_descent) { return (); } else { return \$href; } } my %hash = ('a' => { 'value' => 1, 'foo' => 'bar', }, 'b' => { 'value' => 2, 'foo' => 'bar', }, 'c' => { 'value' => 3, 'foo' => 'bar', }, ); for (qw(a b c d)) { if (my $href = safe_exists(\%hash, $_, 'value')) { print "$_ value is $$href\n"; } else { print "Key $_ doesn't exist. Valid keys are: "; print join (", ", keys %hash), "\n"; } }

Caution: Contents may have been coded under pressure.

In reply to Re: Heisenberg Uncertainty Hash by Roy Johnson
in thread Heisenberg Uncertainty Hash by Sprad

and:  <code> code here </code>

  • Please read these before you post! —
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Log In?

    What's my password?
    Create A New User
    and the web crawler heard nothing...

    How do I use this? | Other CB clients
    Other Users?
    Others wandering the Monastery: (5)
    As of 2014-12-27 10:52 GMT
    Find Nodes?
      Voting Booth?

      Is guessing a good strategy for surviving in the IT business?

      Results (177 votes), past polls