for(my $iSheet=0; $iSheet < $oBook->{SheetCount}; $iSheet++)
{
print "$oBook->{SheetCount}";
}
####
use strict;
use warnings;
use Benchmark qw/ timethese cmpthese /;
my $oBook = { SheetCount => 1000 };
cmpthese(timethese(10000, {
'For_C' => '&For_C',
'For_Set' => '&For_Set',
}));
sub For_C
{
my $var;
for (my $iSheet=0;
$iSheet < $oBook->{SheetCount};
$iSheet++)
{
$var = $iSheet;
}
}
sub For_Set
{
my $var;
for my $iSheet (0..$oBook->{SheetCount}-1)
{
$var = $iSheet;
}
}
####
Benchmark: timing 10000 iterations of For_C, For_Set...
For_C: 14 wallclock secs (14.33 CPU) @ 697.84/s (n=10000)
For_Set: 7 wallclock secs (7.22 CPU) @ 1385.04/s (n=10000)
Rate For_C For_Set
For_C 698/s -- -50%
For_Set 1385/s 98% --
####
$iSheet < $oBook->{SheetCount} # hash look up and comparison