Hash::NoVivify - Perl extension for non-vivifying exists and defined functions
use Hash::NoVivify qw(Defined Exists); ... if (Exists(\%hash, qw(key1 key2 ... keyn ))) { ... } if (Defined(\%hash, qw(key1 key2 ... keyn))) { ... }
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:
%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, Defined() and 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.
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.
perl(1), perlfunc(1).
To install Hash::NoVivify, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Hash::NoVivify
CPAN shell
perl -MCPAN -e shell install Hash::NoVivify
For more information on module installation, please visit the detailed CPAN module installation guide.