Ich wollte aus einem Array (@$entries) gleichzeitig alle Elemente löschen deren Index in einem anderen Array (@remove) vorliegen. Ich habe folgende Lösung:
my $reduced_entries = [];
my $i=0;
for my $entry (@$entries) {
push @$reduced_entries, $entry unless (grep $_ == $i, @remove);
$i++;
}
$entries = $reduced_entries;
Mein erster Gedanke war ja über das @remove-Array zu iterieren und jedes Element aus dem @$entries-Array zu splicen. Dies fällt aber aus, da mit jedem splicen sich der Index meiner Elemente ändert.
Gibt es noch eine elegantere Lösung für dieses Problem?\n\n
<!--EDIT|Ronnie|1069757406-->