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

Strat
 2006-05-14 15:22
#65844 #65844
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
[quote=betterworld,13.05.2006, 23:06]
Selbst wenn ein Programmierer beabsichtigt, an die aufrufende Funktion ueber $_ die zuletzt eingelesene Zeile zurueckzugeben, ist das ein wirklich schlechter Stil
[/quote]
genau, aber nur durch die verwendung der globalen variable.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub Irgendwas {
my ($filename) = @_;

open (my $FH, "<", $filename) or die "Error: $!";

local $_;
while( <$FH> ) { last if /^\s*\#/ }

return $_;
} # Irgendwas

hingegen finde ich voellig ok (vorausgesetzt, auch $FH ist lokal, und ich wuerde anstelle von $_ auch eine benannte variable wie z.B. my $line verwenden)

Da sehe ich das Problem nicht bei perl selbst, sondern bei den vielen veroeffentlichten Codeschnipseln, die zwar an sich laufen, aber in einem groesseren Zusammenhang Probleme bereiten.

Ein CPAN-Modulautor muss IMHO sowas wissen (genauso wie das Problem mit den globalen FILEHANDLE's.

Ich schreibe gerade Thomas Klausner an, dem Autor von CPANTS, ob er nicht noch einen solchen Test reinnehmen kann (der hat uebrigens auf dem Perlworkshop vor einigen Jahren in Bonn einen Vortrag genau ueber dieses Thema gehalten)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread Tiefe Hash Strukturen aus Config bilden: Und warum while(<FH>) gefährlich ist