NAME

NVDefined - Perl extension for non-vivifying exists and defined functions

SYNOPSIS

use NVDefined;

...

if (NVExists(\%hash, qw(key1 key2 ... keyn ))) {
    ...
}

if (NVDefined(\%hash, qw(key1 key2 ... keyn))) {
    ...
}

DESCRIPTION

When used on a hash, the exists() and defined() functions will create entries in a hash in order to evaluate the function.

For instance, the code

The code

%a = (a => 1, b=> 2);
print "Doesn't exist\n" unless exists($a{c});
print "Also Doesn't exist\n" unless exists($a{c}->{d});
print "Oh, my, not good\n" if exists($a{c});

will print out:

Doesn't exist
Also Doesn't exist
Oh, my, not good

The NVDefined module provides two functions, NVDefined() and NVExists(), which avoid this, at the cost of a slightly convoluted syntax. Both functions take a reference to a hash, followed by a list of descending keys defining the hash entry to be investigated.

AUTHOR

Brent B. Powers (B2Pi), Powers@B2Pi.com

Copyright(c) 1999 Brent B. Powers. All rights reserved. This program is free software, you may redistribute it and/or modify it under the same terms as Perl itself.

SEE ALSO

perl(1), perlfunc(1).