This is the README file for Hash::NoVivify Hash::NoVivify is an XS extension that implements Non-Vivifying defined and exists functions (Hash::NoVivify::Defined and Hash::NoVivify::Exists, 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 Hash::NoVivify module provides two functions, Hash::NoVivify::Defined() and Hash::NoVivify::Exists(), 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. Hash::NoVivify 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.