in reply to Why Perl gets confused here?

The evaluation order of sub arguments with side effects are a tricky thing in Perl.

See  eval order of args to a sub

I think passing an lvalue is very similar to passing two increments and you enter the undiscovered country of implementation details which might change.

update

nope, see answers pointing to "list assignment"

Cheers Rolf
(addicted to the Perl Programming Language and ☆☆☆☆ :)
Je suis Charlie!