foreachとmap

evalで動的useをしている時にふと思ったんだけども、


どっちが速いんだろう・・・。


悩んだら試してみるの法則。
Benchmark してみた。
for: 1 wallclock secs ( 0.53 usr + 0.02 sys = 0.55 CPU) @ 1824817.52/s (n=1000000)
map: 1 wallclock secs ( 0.25 usr + 0.00 sys = 0.25 CPU) @ 4016064.26/s (n=1000000)

以下試したソース
use Benchmark;
my %codes = ();
$codes{'for'} = q{foreach my $modules(@$modules_ref){eval"use $modules;";}};
$codes{'map'} = q{map {eval "use $_;";} @$modules_ref;};
my $ret = timethese(1000000,\%codes);


5000000回だとえらい差が出てくる。
そんな訳で今回はmapを採用。