Thread Frage zur for-Schleife (14 answers)
Opened by Gast at 2008-02-27 14:01

murphy
 2008-02-27 18:23
#106434 #106434
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
Gast+2008-02-27 13:01:44--
[...] Nur speziell der Anweisungsblock fehlt doch hier, oder etwa nicht?? Ich komme mit der Schreibweise nicht so ganz klar! [...]


mach_was for (@zeug); ist eine Kurzschreibweise für for (@zeug) { mach_was }, die nur dann funktioniert, wenn mach_was genau ein einziger Befehl ist.

Ferner ist for (@zeug) { ... } ein besonderes Kostrukt, das in etwa den gleichen Effekt wie my @temp = @zeug; while (@temp > 0) { local $_ = shift @temp; ... } hat, also einfach über alle Elemente der angegebenen Liste iteriert.

[Edit: Der Vergleich mit der while-Schleife mit temporärer Variable ist insofern korrekt, als bei einer foreach-Schleife die zu iterierende Liste stets vollständig im Speicher abgelegt wird, aber auch inkorrekt, da eine bereits in einer Variablen vorliegende Liste nicht kopiert wird und $_ sogar zu einem Alias der durchlaufenen Listenelemente wird, jede Modifkation daran also auch auf das Listenelement wirkt.]
When C++ is your hammer, every problem looks like your thumb.

View full thread Frage zur for-Schleife