This is the README file for NVDefined NVDefined is an XS extension that implements Non-Vivifying defined and exists functions (NVDefined and NVExists, respectively). When used on a hash, the exists() and defined() functions will create (vivify) entries in a hash in order to evaluate the function. For instance, 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. To build and install this extension, the usual perl Makefile.PL make make test make install will suffice. NVDefined requires perl5.004, and is 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.