>>961
追試。

#!/usr/bin/perl -w
use strict;
use Benchmark qw(timethese);
timethese(-5, {
  For1 => sub { my @arr; $arr[$_] = 1 for 0..9999; 1 },
  For2 => sub { my @arr; $_ = 1 for @arr[ 0..9999 ]; 1 },
  List => sub { my @arr; @arr = (1) x 10000; 1 },
  Map1 => sub { my @arr; map $arr[$_] = 1 , 0..9999; 1 },
  Map2 => sub { my @arr; map $_ = 1 , @arr[ 0..9999 ]; 1 },
  Map3 => sub { my @arr; map { $arr[$_] = 1 } 0..9999; 1 },
  Map4 => sub { my @arr; map { $_ = 1 } @arr[ 0..9999 ]; 1 },
});

For1: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 129.33/s (n=681)
For2: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 151.32/s (n=798)
List: 5 wallclock secs ( 5.32 usr + 0.00 sys = 5.32 CPU) @ 367.46/s (n=1955)
Map1: 6 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 117.95/s (n=622)
Map2: 6 wallclock secs ( 5.24 usr + 0.00 sys = 5.24 CPU) @ 152.23/s (n=798)
Map3: 5 wallclock secs ( 5.27 usr + 0.00 sys = 5.27 CPU) @ 112.07/s (n=591)
Map4: 5 wallclock secs ( 5.30 usr + 0.00 sys = 5.30 CPU) @ 71.93/s (n=381)