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=Strat,11.05.2006, 16:07]Eine while-schleife ist ja im grunde nur ein if-block, der wiederholt ausgefuehrt wird (solange halt die bedingung wahr ist) Und bei einem if ( BEDINGUNG ) ist es ja auch klar, dass man, wenn man einen lokalen wert verwenden will, diesen selbst lokalisieren muss, z.B.
Code: (dl
)
if( my $x = &SubBlabla(@params) ) { wird's jetzt klara?[/quote] Es ist schon einleuchtend. Aber ich bin ueberzeugt, dass viele Leute sich dessen nicht bewusst sind. Mit einem einfachen grep auf @INC-Verzeichnisse habe ich z. B. Module::ScanDeps gefunden. Und siehe da: Code: (dl
)
1 $ perl -e '$_="erfolgreich"; use Module::ScanDeps; print $Module::ScanDeps::VERSION, "\n"; scan_deps(files=>["lib/MyApp.pm"]); print "test $_\n"' Mir war es am Anfang auch nicht bewusst. Zu meiner Frage: Es ist in der Dokumentation erwaehnt, und zwar in perlop: QuoteDas ist aber meiner Meinung nach nicht genug, denn wie in Module::ScanDeps zu sehen ist, tappt man viel zu leicht in die Falle. Vielleicht sollte einfach eine Warnung ausgegeben werden, wenn while(<>) in einer nicht $_-lokalisierten Umgebung benutzt wird. Lieblingsmodule: IPC::System::Simple, Path::Class
|