[londonperl] Re: disable auto-instantiation or warn about it

David Alban extasia at extasia.org
Fri Jul 13 20:48:31 BST 2007

Very cool!  Interesting use of ref() in place of exists().

Inspired by that:


  use strict;
  use warnings;

  use Data::Dumper;

  my $h;

  print Dumper $h;

  ref $$h{ foo } eq 'HASH' and print "\$\$h{ foo } is a HASH reference\n";

  print 'after ref(): ', Dumper $h;

  exists $$h{ foo }{ bar } and print "\$\$h{ foo }{ bar } exists\n";

  print 'after exists(): ', Dumper $h;


  $VAR1 = undef;
  after ref(): $VAR1 = {};
  after exists(): $VAR1 = {
            'foo' => {}

While ref() didn't cause autovivification of $$h{ foo }, it did cause
$h to become a reference to an anonymous hash.

I can live with that.

On 7/13/07, Uri Guttman <uri at stemsystems.com> wrote:
> and i wrote a tutorial about autoviv a while back that many have found
> useful.
>         http://sysarch.com/Perl/autoviv.txt
> it even has a exists replacement sub that won't autovivify.

Live in a world of your own, but always welcome visitors.

More information about the london.pm mailing list