How about just "method called on undefined value"?
perl -e'$x= $x[-1]' $x is, of course, undefined.
So logically $x=$x[-1];$x->meth and $x[-1]->meth should produce the same error, right? Theres no attempt at creation anywhere. Just trying to find an index that doesn't exist.
$x[1]->meth produces the "Can't call method on undefined value" error, so why is -1 different than 1 when neither exist?