Thread Tiefe Hash Strukturen aus Config bilden: Und warum while(<FH>) gefährlich ist
(62 answers)
Opened by bloonix at 2006-05-09 17:07
[quote=betterworld,13.05.2006, 22:11]
Es ist schon einleuchtend. Aber ich bin ueberzeugt, dass viele Leute sich dessen nicht bewusst sind. ... Mir war es am Anfang auch nicht bewusst. [/quote] ich befuerchte auch, dass sich viele leute dessen nicht bewusst sind. aber while ist mal was voellig anderes als ein for(each), auch wenn viele leute das wild durcheinanderwerfen. Dabei ist der skalare Kontext der while-bedingung doch schon ein sehr klarer hinweis, dass da was voellig anderes abgeht. [quote=betterworld,13.05.2006, 22:11] ... Vielleicht sollte einfach eine Warnung ausgegeben werden, wenn while(<>) in einer nicht $_-lokalisierten Umgebung benutzt wird.[/quote] wieso? soll code wie der folgende wirklich eine warnung auswerfen? Code: (dl
)
1 while( <$FH> ) { last if /^\s*\#/ } Dann muesste man IMHO auch bei den folgenden Konstrukten Warnungen ausgeben: weil man da - absichtlich oder unabsichtlich - das input-array veraendert. Das erste Beispiel duerfte wohl nur manche neulinge wundern (sowas geht nicht in allen Programmiersprachen), aber beim zweiten Beispiel ist auch fuer fortgeschritten wohl haeufig nicht auf den ersten Blick klar, und wenn sowas unabsichtlich geschieht, kann man bei der Fehlersuche echt viel spass haben. perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/ |