This example will help you to understand much more clearly.
## initial array
my @array = qw(1 2 3 4 5 6 7 8 9 10);
## print last element from array
print $array[-1] , "\n";
## print second last element from array
print $array[-2] , "\n";
At above example, there are 10 elements. if you provide a negative number which is greater than the total number of elements, you'll get error Use of uninitialized value in print at temp.pl line 2., for example the below code will generate such error.
print $array[-11] , "\n";
The reason is the array doesn't have 11 elements in total.