Another mental tidbit: to prevent just this sort of confusion, Perl 6 makes sigils invariant, so that $array[1] always dereferences $array and @array[1] always deferences @array. (And in either case, slices arise naturally when you use multiple subscripts.)

So in Perl 6, not only does @array[1] not warn, but it's actually the correct form to dereference @array. The ramifications of this run deep, so I tend to doubt whether this feature will ever be backported to Perl 5, but you never know...