Haven't done a ton of research yet, but think the answer is the same as in Array dereference in foreach(): map probably provides lvalue context to the list it is iterating over (because it allows modification of the original items of the list via $_), and autovivification happens in lvalue context. Further somewhat related reading:
Update: stevieb beat me to it :-)
In reply to Re: map() and grep() suppress "Can't use an undefined value as an ARRAY reference at ..." errors
by haukex
in thread map() and grep() suppress "Can't use an undefined value as an ARRAY reference at ..." errors
by icanhezperl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |