This is because of autovivification, which is described in Using References. When you dereference your array element as if it were a reference to a hash, an anonymous hash is created and the array element is set to a reference to that hash. If your array element were not undefined, this would not happen - it would be a hash reference or not and so it would work or you would get an error.
In reply to Re: Why nothing from 'strict' or 'warnings' with deref'd undef value?
by ig
in thread Why nothing from 'strict' or 'warnings' with deref'd undef value?
by jeremym
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |