sub del_double{ #Parameter: @liste, die aussortiert werden soll my %all; grep {$all{$_}=0} @_; return (keys %all); } |
sub del_double { my %all; $all{$_}=0 for @_; return (keys %all); } |
use Benchmark qw(:all) ; for ($i=0;$i<1000000;$i++){push @a,int(rand(1000));} timethis (5, sub{@b=del_double(@a)}); # original-Code timethis (5, sub{$all{$_}=0 for @a; @b=(keys %all);}); # hier neuer Code, der verglichen werden soll |
sub del_double{ my %all=(); @all{@_}=1; return (keys %all); } |