Hmm, so the implication is that (1,2,3)[3] is similar to @x[3], not $x[3]. Why? Indexing beyond the end of the array returns a different "error" value depending on its context. Normally, indexing an array specifies scalar or list return values based on the signet used in front of the array name. It's a logical thing to do, but can cause wierd results because the dereference does different things depending on its actual argument.