Thread Werte in Subroutine und zurück mit Modulen
(36 answers)
Opened by Brenner at 2009-01-13 17:30
Ein paar Tips: Ich würde eine Hashreference als Objekt benutzen. Respektive, wenn ich ein Array benutzen würde, würde ich auch "Konstanten" (sind afaik nur inline Funktionen) benutzen. Damit du (im Modul selber) sowas schreiben kannst wie
Code (perl): (dl
)
$self->[ERRORLIST] Desweiteren: ich würde in jedem Fall das Array mit den Informationen aus der Datei im Objekt speichern. Es ist hart sinnlos das bei jeder Abfrage erneut einzulesen.. (Es sei denn die Textdatei ändert sich mit der Zeit.) Ich würde auch nicht die Info direkt ausgeben, sondern den String mit der Info returnen, es sei denn die Funktion (Methode) weist namentlich direkt darauf hin, dass etwas ausgegeben wird. Was soll ich dazu sagen? :T Erstmal: ich würde mein Objekt (das in die Methoden ja klassischerweise am Anfang "reingeshiftet" wird) immer gleich nennen.. ($self hat sich eingebürgert. Kannst es natürlich auch irgendwie anders nennen, aber ich würde schon empfehlen es im Modul überall gleich zu nennen...) 2. Hat es wirklich einen Sinn den Funktionsparameter dauerhaft im Objekt zu speichern? (Ich würde schätzen: nein!) 3. shift verändert ein Array. Ich schätze also mal, dass du hier $_[0] meintest... (Besser schreibt man das aber wie in deiner auskommentierten Zeile, nämlich als 'my ($lineNr) = @_'. Hat den Vorteil der Lesbarkeit..) I could go on.. Aber das solls erstmal sein. edit: ein Hinweis noch: wenn du dir nicht sicher bist was eine bestimmte Variable oder so enthält (zum Beispiel die Argumentenliste in deiner Methode) empfiehlt es sich einfach mal einen Blick rein zu werfen: (Bequemerweise mit Data::Dumper) Sollte man natürlich nachm debuggen wieder entfernen... |