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

Reply via email to