http://www.perlmonks.org?node_id=281412


in reply to Re: Perl Idioms Explained - keys %{{map{$_=>1}@list}}
in thread Perl Idioms Explained - keys %{{map{$_=>1}@list}}

This actually seems to be slightly quicker than the grep based solution:

Benchmark: timing 100000 iterations of broquaint, grep_seen, aristotle +, juerd... broquaint: 25 wallclock secs (21.62 usr + 0.01 sys = 21.63 CPU) @ 46 +22.99/s (n=100000) grep_seen: 12 wallclock secs (11.55 usr + 0.00 sys = 11.55 CPU) @ 86 +60.26/s (n=100000) aristotle: 10 wallclock secs ( 9.05 usr + 0.00 sys = 9.05 CPU) @ 11 +044.84/s (n=100000) juerd: 9 wallclock secs ( 8.66 usr + 0.00 sys = 8.66 CPU) @ 11 +543.35/s (n=100000)
on
my @list = qw/a b c d d a e b a b d e f a erti wen udfgn wei sdej usdjdh iu t k a b b b b a a a a c d f e f s r s gkl h u s y t d s w s d log u log ds/;

Jenda
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
   -- Rick Osborne

Edit by castaway: Closed small tag in signature