in reply to Are defined or // garantee not to autovivify?

I want to be sure that this behavior will not change in the future.

I doubt you will get such a guarantee - the language evolves. If you don't want autovivification, why not just put

no autovivification;

in your code and then it's all done. That would be my best advice to do what you can to prevent it now and in the future. See autovivification for more options.

Replies are listed 'Best First'.
Re^2: Are defined or // garantee not to autovivify?
by ikegami (Patriarch) on May 29, 2020 at 22:16 UTC

    autovivification won't help because the OP isn't talking about the what we normally call autovivificaion (the creation of a referenced variable through dereference of an undefined value).

    $ perl -e' my %h; 1 for $h{k}; CORE::say 0+keys(%h); ' 1 $ perl -e' no autovivification; my %h; 1 for $h{k}; CORE::say 0+keys(%h); ' 1