use strict; use Benchmark; my @array = (1..10000000); timethese(100000000, { 'scalar' => \&size_scalar, 'index' => \&size_index, 'context' => \&size_context } ); sub size_context { my $val1 = @array; } sub size_index { my $val2 = $#array + 1; } sub size_scalar { my $val3 = scalar(@array); } #### context: 30.52 usr + 0.00 sys = 30.52 CPU @ 3277076.85/s
index: 42.11 usr + 0.00 sys = 42.11 CPU @ 2374732.84/s
scalar: 53.44 usr + 0.00 sys = 53.44 CPU @ 1871327.52/s