Uri Guttman skribis 2004-05-19 0:08 (-0400): > J> 1;0 [EMAIL PROTECTED]:~$ perl -MBenchmark=cmpthese -e'my @foo = (1..16, > J> 1..10); cmpthese -1, { a => sub { my %foo; $foo{$_}++ for @foo; }, i > J> b => sub { my %foo; $_++ for @[EMAIL PROTECTED]; } }' > J> Rate a b > J> a 51121/s -- -9% > J> b 56220/s 10% -- > but those are setting the empty hash to values of 1's. you can do that > with a slice or map:
Not in my perl. perl -MData::Dumper -le'my @foo = (1..16, 1..10); my %foo; $foo{$_}++ for @foo; print Dumper \%foo' perl -MData::Dumper -le'my @foo = (1..16, 1..10); my %foo; $_++ for @[EMAIL PROTECTED]; print Dumper \%foo' Both give: $VAR1 = { '11' => 1, '7' => 2, '2' => 2, '1' => 2, '16' => 1, '13' => 1, '6' => 2, '3' => 2, '9' => 2, '12' => 1, '14' => 1, '15' => 1, '8' => 2, '4' => 2, '10' => 2, '5' => 2 }; This is perl, v5.8.4 built for i386-linux-thread-multi Juerd