Siechfred: Arrays mit "grep" filtern

Beitrag lesen

Und wer's performant mag, nimmt einen Hash-Slice:

Und ehe es ein anderer merkt (um mit ne zu vergleichen, muss exists auch negiert werden):

Benchmark::cmpthese(-1, {  
    'foreach_grep'  =>  sub { my @wanted = (6..10);;  
                              foreach my $exclude (@wanted) {  
                                @array1 = grep { $_ ne $exclude } @array1;  
                              }  
                            },  
    'slice_grep'    =>  sub { my %wanted;  
                              @wanted{(6..10)} = ();  
                              @array1 = grep { !exists $wanted{$_} } @array1;  
                            },  
});

Ergibt dann einen Geschwindigkeitsvorteil von ca. 2,5 zugunsten des Slices.

Siechfred

--
Coping With Scoping (Deutsche Übersetzung)
Als Moderator habe ich keinerlei Humor, von dem ich wüsste.