That doesn't do any autovivification. You meant (note the referencing down a deeper level than the exists test):
if (exists $foo->{bar}){ .. will not run .. } if ($foo->{bar}->{baz}) {...} if (exists $foo->{bar}){ .. will run .. }
Can't believe I've had that wrong for so long. Must have misinterpreted it right when I learned perl and have always been careful about it.
I see, thank you.
I am certainly a perl novice.
if (exists $foo->{bar}){ .. will not run .. }
if ($foo->{bar}) {...}
if (exists $foo->{bar}){ .. will run .. }