$ perl -MBenchmark=cmpthese -Mstrict -wE ' > my @arr; > push @arr, int rand 20 for 1 .. 1000; > cmpthese( > -5, > { > grep => sub > { > my %seen; > my @uniq = grep ! $seen{ $_ } ++, @arr; > }, > slice => sub > { > my %seen; > @seen{ @arr } = ( 1 ) x @arr; > my @uniq = keys %seen; > }, > } > );' Rate grep slice grep 3041/s -- -29% slice 4260/s 40% -- $