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