use strict;
use Benchmark;
my $a_huge_value = 10000000;
sub outside {
my($foo);
for (my $i = 0; $i < $a_huge_value; $i++) {
$foo = $i + 1;
$foo++;
}
}
sub inside {
for (my $i = 0; $i < $a_huge_value; $i++) {
my $foo = $i + 1;
$foo++;
}
}
timethese 1, {
inside => \&inside,
outside => \&outside,
};
__END__
Benchmark: timing 1 iterations of inside, outside...
inside: 6 wallclock secs ( 5.99 usr + 0.00 sys = 5.99 CPU) @ 0.17/s (n=1)
outside: 5 wallclock secs ( 4.95 usr + 0.01 sys = 4.96 CPU) @ 0.20/s (n=1)
####
Benchmark: timing 1 iterations of inside, outside...
inside: 12 wallclock secs (10.95 usr + 0.00 sys = 10.95 CPU) @ 0.09/s (n=1)
outside: 10 wallclock secs ( 9.49 usr + 0.02 sys = 9.51 CPU) @ 0.11/s (n=1)
####
sub inInit {
for (my ($i, $foo) = (0, 0); $i < $a_huge_value; $i++) {
$foo = $i + 1;
$foo++;
}
}
####
for ($i = 0; $i < $a_whole_lot; $i++) {
($key, $value) = returnsAnArray();
}