Siechfred: Durchlaufen einer foreach-Schleife

Beitrag lesen

Guten Tag allerseits,

mein Script liest aus einer Textdatei die Zeilen in ein Array. Nun sollen aus dem Array alle alten Einträge gelöscht werden. Mein Plan sieht so aus:

my $n = 0;
foreach(@zeilen) {
  ($ip, $zeit) = split(/|/, $_); # "|" ist das Trennzeichen
  if($aktuelle_zeit - $zeit > $zeitabstand * 60) {
    splice(@zeilen, $n, 1);
  }
  $n++;
}

Beißt sich da die berühmte Katze in den Schwanz, da ich ja während das (oder der?) Array durchlaufen wird, Elemente daraus lösche, oder ist o.g. Codeschnipsel "unbedenklich"? Oder habt ihr einen Tipp, wie man das selbe besser lösen kann?

mfg Torsten