Thread our & Perl 5.005
(30 answers)
Opened by BrownWolf at 2004-01-03 02:48
[quote=eisbeer,08.Jan..2004, 18:22]@ptk:
Nein, ich teste meine Programme nur laufend und vermeide so Fehler. Und da ich sowieso max. 4 globale Hashes hab, ist der aufwand nicht sooo gross. Was hätte ich für Vorteile von z.B. use fields ? Noch kann ichs ändern, noch bin ich relativ am Anfang meines neusten Projekts :)[/quote] Gucken wir uns folgendes Skript an: Code: (dl
)
1 package Bla; Hier wird fuer Objekte der Klasse "Bla" festgelegt, dass es nur foo, bar und bla enthalten darf. Eine Zuweisung mit dem Key "foo" funktioniert, mit "vertippt" aber nicht. Das wird zur Laufzeit gemacht, wie die Ausgabe von "Runtime" beweist. Man kann die Ueberpruefung sogar zur Compilezeit machen, indem man Code: (dl
)
my Bla $x = new Bla; Ein Nebeneffekt bei der Verwendung von "use strict" ist, dass intern Pseudo-Hashes verwendet werden, also Hashes, die intern als Arrays aufgebaut sind. Man erhoffte sich dadurch eine Steigerung der Performance, die aber nicht (oder kaum) aufgetreten ist. Pseudo-Hashes laufen mit perl5.8.x aus. "use fields" wird weiterhin funktionieren, aber intern wird dann mit Hash::Util::lock_keys gearbeitet. Praktisch heisst das, dass nur die Runtime-Checks erhalten bleiben, aber nicht mehr die Compiletime-Checks. Alternativen zu "use fields" sind beispielsweise Class::Accessor oder Class::Struct, wobei automatisch Methoden zum Auslesen und Beschreiben von Members erzeugt werden. |