http://qs321.pair.com?node_id=171171


in reply to Re: Re: Sometimes it's in Void Context
in thread Sometimes it's in Void Context

I don't see the issue here, sorry.

$lines[0] = [3,2,1]: here we agree that [3,2,1] must mean an array reference.

$lines[0][3,2,1]: I fail to see how this can parse as something like ``$lines[ARRAY(0x1a7efd8)]'' (i.e. [3,2,1] becomes an array reference, which is "numericalised" into the value 0x1a7efd8. For that, you'd need an extra set of square brackets: the inner pair delimits an array reference, the outer pair delimits an array index! Indeed, testing $lines[0][[3,2,1]] shows that it behaves as a numericalised array reference.

I can see nowhere in the "grammar" of Perl (I use the term loosely...) where both a scalar value (such as an array reference!) and an array subscript are legal. So there's no problem here.