まさかbとcを比較されようとは…

use Benchmark;
my @arr = (1 .. 1000);
timethese(10000, {
test_a => sub {
my $x = @arr;
for (my $i = 0; $i < $x ; $i++) { $arr[$i]=" "; }
},
test_b => sub {
foreach (@arr) { $_=" "; }
},
test_c => sub {
my $n = 0;
foreach (@arr) { $arr[$n++]=" "; }
},
test_d => sub {
my $n = 0;
foreach (@arr) { $arr[$n]=" ";$n++; }
}
});
__END__
Benchmark: timing 10000 iterations of test_a, test_b, test_c, test_d...
test_a: 4 wallclock secs ( 3.72 usr + 0.01 sys = 3.73 CPU) @ 2678.81/s (n=10000)
test_b: 2 wallclock secs ( 2.73 usr + 0.00 sys = 2.73 CPU) @ 3657.64/s (n=10000)
test_c: 4 wallclock secs ( 4.34 usr + 0.00 sys = 4.34 CPU) @ 2302.03/s (n=10000)
test_d: 4 wallclock secs ( 3.98 usr + 0.00 sys = 3.98 CPU) @ 2509.41/s (n=10000)