Find the index of the last element in an array
Most Perl programmers know that to find the size of an array, the array must called in a scalar context like this:
# Declare the array my @numbers_array = (41,67,13,9,62); # Get the array size my $size_of_array = @numbers_array; This understanding can lead to programmers applying a scalar context to an array to access its last element (subtracting 1 because arrays are zero-based).
print $numbers_array[@numbers_array - 1]; # 62 The last-index variable
Perl has a ’last-index’ variable for arrays ($#array_name).
print $#numbers_array; # 4 print $numbers_array[$#numbers_array]; # 62 The last index operator ($#array_name) also works on arrayrefs if you insert an extra dollar sigil:
my $arrayref = [41, 67, 13, 9, 62]; print $#$arrayref; # 4 print $$arrayref[$#$arrayref]; # 62 Negative indexing
Perl provides a shorter syntax for accessing the last element of an array: negative indexing. Negative indices track the array from the end, so -1 refers to the last element, -2 the second to last element and so on.
# Declare the array my @cakes = qw(victoria_sponge chocolate_gateau carrot); print $cakes[-1]; # carrot print $cakes[-2]; # chocolate_gateau print $cakes[-3]; # victoria_sponge print $cakes[0]; # victoria_sponge print $cakes[1]; # chocolate_gateau print $cakes[2]; # carrot
This article was originally posted on PerlTricks.com.
Tags
David Farrell
David is a professional programmer who regularly tweets and blogs about code and the art of programming.
Browse their articles
Feedback
Something wrong with this article? Help us out by opening an issue or pull request on GitHub


