Thread Perl OO und Vererbung
(10 answers)
Opened by mark05 at 2020-03-27 11:06 2020-03-27T15:11:03 mark05 Da hast Du dann etwas nicht ganz richtig verstanden: out ist keine Methode. Eine Methode hat immer als ersten Parameter das Objekt, auf das sie anzuwenden ist. In Perl schreibt man das dann $o->out und die Methode sammelt dann den ersten Parameter ein, per Konvention unter dem Namen $self. Klassenmethoden wie OOTest::Out->new(); wirken nicht auf ein einzelnes Objekt, aber auch hier wird der Klassenname als erster Parameter ($class in Deinem Beispiel) eingesammelt. Die Syntax mit -> ist genau das, was einen normalen Aufruf eines Unterprogramms von einer Methode unterscheidet! 2020-03-27T15:11:03 mark05 Das ist akzeptabel, macht aber das Lernen von OO schwieriger :) Perl ohne die inzwischen gar nicht mehr so neuen OO-Frameworks bietet nur rustikales OO im Stil eines IKEA-Bausatzes an. 2020-03-27T15:11:03 mark05 Dann musst Du auch eine Zugriffsfunktion für das Objektattribut debug bereitstellen! Das ist eins der Features, das Dir Moose automagisch bietet. 2020-03-27T15:11:03 mark05 Das halte ich für völlig unproblematisch. Ich schreibe auch "kleine" CLI-Apps mit Moose (und ![]() Bei Servern oder sonstigen Langläufern ist das eh unbedeutend, weil die Performance-Einbussen nur die Übersetzungsphase betriffen. Ein "klassisches" CGI-Skript, das bei jedem Aufruf neu übersetzt wird, würde ich nicht mit Moose schreiben - bei einem persistenten Server ist das schon wieder egal. Ansonsten gibt es auch noch ![]() ![]() ![]() |