I think
because of the fact that
@array->[$index] isn't really valid, and that Perl tries to be accomodating, it's turning it into
$array[$index]. The only difference is that you can't use
@array->[0, 1, 2] to get a slice (but then you can't use
$array[0..2] either).
Perhaps somebody else can better express what's going on internally that makes this happen...