Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Re: Checking if hash value exists without implicitly defining it

by trizen (Hermit)
on Feb 14, 2013 at 20:18 UTC ( #1018780=note: print w/replies, xml ) Need Help??

in reply to Checking if hash value exists without implicitly defining it

Here is a recursive check, without autovivification.
sub _exists { my ($hash, @keys, @exists) = @_; if (exists $hash->{$keys[0]}) { my $key = shift @keys; push @exists, 1, _exists($hash->{$key}, @keys); } return @exists; } sub exists_keys { return &_exists == $#_ ? 1 : (); } my %hash; #$hash{a}{b}{c} = undef; if (exists_keys(\%hash, qw(a b c))) { print "Exists.\n"; } else { print "Doesn't exists.\n"; }

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1018780]
[Mj1234]: Hello Monks, I have installed Active perl 5.16 and 5.14 but I dont find Devel::GDB package when I try to install through ppm
[Discipulus]: i'v installed ubuntu 16.04lts and i'm quite disappointed: is deadly simmilar to new win osses where you cannot find even simple things...
[Corion]: Hi Discipulus ;)
[Corion]: Mj1234: Maybe Ubuntu didn't package Devel::GDB? In that case, consider using local::lib and install the module from CPAN
[Corion]: But a quick Google search turns up this page, which seems to suggest that it should be packaged
[Discipulus]: iirc active perl has repositories only for last 2 o 3 major release of perl Mj1234. I strongly suggest portable version of strawberry perl and use cpan client to install modules
[choroba]: Also, who needs GDB when there's hdb?

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (10)
As of 2016-12-07 08:55 GMT
Find Nodes?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:

    Results (125 votes). Check out past polls.