http://www.perlmonks.org?node_id=130750


in reply to Potential Ternary Operator Bug

Actually, this bug isn't really related to the ternary operator. The bug is with using array derefencing on an array rather than a reference to an array.
perl -e '@{ $_; @_ } = 1' Bizarre copy of ARRAY in leave at - line 1.
Note that this code: perl -e '@{ @_ } = 1'
does not produce the error. However, it does produce the error when run in the debugger.

I expect it's something to do with the state of the stack after the contents of @{ } are evaluated. I can't explain why it works in some cases (even though it shouldn't) and not in others. :)