Und ... wer keine RegExes mag kommt mit folgender Form besser zurecht:
Und wer's performant mag, nimmt einen Hash-Slice:
my @array1 = (1..10);
my %wanted;
@wanted{(6..10} = ();
@array1 = grep { exists $wanted{$_} } @array1;
Diese Variante ist bei mir mehr als 7mal so schnell wie die foreach-Variante. Zum Selbertesten:
use strict;
use Benchmark;
my @array1 = (1..10);
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 bei mir:
Rate foreach_grep slice_grep
foreach_grep 6775/s -- -89%
slice_grep 58964/s 770% --
Siechfred
--
Coping With Scoping (Deutsche Übersetzung)
Als Moderator habe ich keinerlei Humor, von dem ich wüsste.
Coping With Scoping (Deutsche Übersetzung)
Als Moderator habe ich keinerlei Humor, von dem ich wüsste.