use strict; use Benchmark qw[cmpthese]; my @array = (1..100); cmpthese(1000000, { 'scalar' => \&last_index_scalar, 'index' => \&last_index, 'context'=> \&last_index_context }); sub last_index_context { my $val1 = @array-1; } sub last_index { my $val2 = $#array; } sub last_index_scalar { my $val3 = scalar(@array)-1; } __DATA__ P:\test>test Rate scalar context index scalar 207641/s -- -4% -17% context 217014/s 5% -- -14% index 251509/s 21% 16% --