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. :)