Got this bit of code in a test:
say (exists $fs4->{_structure}{'/Users/dotfiles/perl5/my_modules'}{BLA +H}{Crap}); # BLAH and its parent do not exist d $fs4; # dumps the object
The dump of the object now shows this:
### Dump from: 01-FSO_basic.t line: 35 $VAR1 = { '/Users/dotfiles/perl5/my_modules' => { 'BLAH' => {} },
I was pretty surprised to see the path and BLAH in the output as keys. So why is 'BLAH' key getting autovivified? Second, how I work around this?
Update: This one-liner reproduces the problem for me:
perl -MData::Dump -E ' my $fs4 = {'_structure' => {}}; exists $fs4->{_ +structure}{BLAH}{TEST}{Crap}; dd $fs4->{_structure} '
Outputs: { BLAH => { TEST => {} } }
$PM = "Perl Monk's";
$MC = "Most Clueless Friar Abbot Bishop Pontiff Deacon Curate Priest Vicar Parson";
$nysus = $PM . ' ' . $MC;
Click here if you love Perl Monks
In reply to Perl autovivifyies object property when using exists by nysus
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |