in reply to Anonymous Arrays or Anonymous Array References

When you write print (1,2,3)[1], the interpreter associates the parentheses with the function call, not with a list assignment. In that interpretation, the array index is a meaningless syntax error. To get the functionality you expect, you require print( (1,2,3)[1] ); Your second case is equivalent to print( [1,2,3]->[1] );. This is all a consequence of letting parentheses be optional for built-ins, and is discussed a bit in perlsyn.