Matti Maekitalo: Durchlaufen einer foreach-Schleife

Beitrag lesen

use Mosche;

Nun ja, ein foreach mit splice ist böse, das steht auch irgendwo in der Doku. Aber:

Nöö. Das eigentliche Problem entsteht woanders.

Wenn du foreach benutzt, wird eine neue Liste erzeugt - es wird also über eine Kopie deiner Liste iteriert. Daher ist es auch nicht "schlimm", wenn du dann das Original irgendwie veränderst. (Wenn du einen dementsprechenen Code findest, der da irgendwie einen Fehler findet (allerdings mit while), kannst du ihn IMHO an perl5porters oder so schicken und etwas gewinne :-)).

Aber: Es werden hier die Indize mitgezählt. Wenn ein Element gelöscht wird, rutschen alle anderen eins auf => deine "Nummerierung" stimmt nicht mehr.

use Tschoe qw(Matti);

--
  Anyone who quotes me in their sig is an idiot. -- Rusty Russell.