>>>>> "J" == Juerd <[EMAIL PROTECTED]> writes:
J> John Williams skribis 2004-05-18 16:07 (-0600):
>> > $a{$_}++ for @a;
>> [EMAIL PROTECTED];
J> That's not a bad idea, even in Perl 5:
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:
@[EMAIL PROTECTED] = (1) x @foo ;
my %foo = map { $_ => 1 } @foo ;
add those to the benchmark.
now if you wanted to increment the values of a hash already stuffed,
then values is cool:
$_++ for values %foo ;
but i do like the hyper version in p6.
i assume that this is ok since >> is not a logical shift anymore.
[EMAIL PROTECTED]>>++;
uri
--
Uri Guttman ------ [EMAIL PROTECTED] -------- http://www.stemsystems.com
--Perl Consulting, Stem Development, Systems Architecture, Design and Coding-
Search or Offer Perl Jobs ---------------------------- http://jobs.perl.org