the expression %{ $a } isn't in lvalue context.
Yes, it is.
$ perl -E'sub f { $_[0] = 'abc' } f($x); say $x' abc $ perl -E'sub f { $_[1] = 'abc' } $h{a}=undef; f(%h); say $h{a}' abc
Perl arguments are always passed by reference.
Also autovivification doesn't appear only in lvalue context
I didn't say otherwise.
In reply to Re^3: Strange behaviour of interpreter when dereferencing an undefined value
by ikegami
in thread Strange behaviour of interpreter when dereferencing an undefined value
by kejv2
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |