It's actually very easy to get the interpreter to reject @a->[3] - I'm not sure how the rumour that it's hard began. I wrote a very simple patch, which is in bleadperl, to deprecate that usage:
[robin@penderel perl@12959]$ ./perl -we '@x->[2]'
Using an array as a reference is deprecated at -e line 1.