Thread Hash als Option missbrauchen
(118 answers)
Opened by bloonix at 2005-12-19 02:24
Gute Kommentare, Steffen.
[quote=steffenw,21.12.2005, 20:26] Code: (dl
)
1 $stats->{'ProcStats'}->{'ProcUser'} ist für mich übertrieben gequotet. {} quotet schon Hashkeys, man muß also nicht erst mit '...' die Evaluierung anwerfen. [/quote] Und das "fat comma" (=>) quotet auch den Ausdruck links von sich, sofern er die Form eines Identifiers hat, also kann man auch das 'passwd' ohne Anfuehrungszeichen schreiben. (Die Einschraenkung mit dem Identifier gilt uebrigens auch fuer das Quoten innerhalb von {}.) Es ist aber zugegebenermassen Uebungssache, bis man im Gefuehl hat, was man da quoten muss und was nicht. In der Praxis kann man sehr viele Anfuehrungszeichen weglassen, weil Hashkeys sehr oft nur aus Buchstaben bestehen. Quote In diesem Fall waere aber ein printf sowieso deutlich einfacher und uebersichtlicher: Code: (dl
)
printf " %-30s %s\n", $key, $value; Quote Vorsicht, da besteht ein Unterschied zwischen return undef und return. Beides ist zwar gleichwertig, wenn die Funktion im skalaren Kontext aufgerufen wird, aber im Listenkontext liefert die erste Variante ein (skalares) undef, die zweite aber eine leere Liste zurueck. Ein print meinesub() z.B. gaebe (unter use warnings) eine Warnung aus, wenn meinesub() mit return undef endet, mit einem einfachen return kaeme gar nichts. Es kommt also darauf an, welches Verhalten erwuenscht ist. |