use warnings; use strict; use Benchmark "timethese"; my $count = 5000; my @array = qw( a b c ); my $glbArraySize = scalar( @array ); timethese( 10000, { "scalarSavedGlobally" => sub { for ( 1 .. $count ) { my $foo = 1 if $glbArraySize == $_; } }, "scalarSavedLocally" => sub { my $arraySize = scalar( @array ); for ( 1 .. $count ) { my $foo = 1 if $arraySize == $_; } }, "scalarNotSaved" => sub { for ( 1 .. $count ) { my $foo = 1 if scalar( @array ) == $_; } } } );