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

perlfunc:exists

by gods
on Aug 24, 1999 at 22:42 UTC ( #253=perlfunc: print w/replies, xml ) Need Help??

exists

See the current Perl documentation for exists.

Here is our local, out-dated (pre-5.6) version:


exists - test whether a hash key is present



exists EXPR



Returns TRUE if the specified hash key exists in its hash array, even if the corresponding value is undefined.

    print "Exists\n" if exists $array{$key};
    print "Defined\n" if defined $array{$key};
    print "True\n" if $array{$key};

A hash element can be TRUE only if it's defined, and defined if it exists, but the reverse doesn't necessarily hold true.

Note that the EXPR can be arbitrarily complicated as long as the final operation is a hash key lookup:

    if (exists $ref->{"A"}{"B"}{$key}) { ... }

Although the last element will not spring into existence just because its existence was tested, intervening ones will. Thus $ref->{"A"} $ref->{"B"} will spring into existence due to the existence test for a $key element. This autovivification may be fixed in a later release.


Log In?
Username:
Password:

What's my password?
Create A New User
Chatterbox?
[ambrus]: Corion: really? Does that mean the Prima watcher objects behave as handles that stop the watcher when they're destroyed, just like AnyEvent expects?
[ambrus]: "all the bugs" -- hehe, good luck
[ambrus]: Corion: what I don't understand is, if you make a one-shot AnyEvent timer with short timeout, does this code guarantee that the Prima timer can't queue two timeout events before invoking any of them?
[ambrus]: Because that could break AnyEvent code, which is why I added a guard.
[ambrus]: (It might be easier to use the callback scalar as a guard, as in $c and &$c(); $c = ();)
[Corion]: ambrus: Hurr - yes, that might happen, as Prima will queue lots of stuff (Well, Windows will)
[Corion]: But I'm really amazed that it just took this little code (plus the idle handler I have in mind and something else dk suggested)

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (7)
As of 2016-12-09 09:01 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    On a regular basis, I'm most likely to spy upon:













    Results (150 votes). Check out past polls.