2020-03-27T15:11:03
mark05also wenn ich PerlCritic richtig verstanden habe wird die Methode "out" ...
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
mark05Moose möchte ich nicht verwenden um meine Apps so zu schreiben ,
so das sich zusätzliche modul installationen auf einen minimum beschränken.
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$o->{'debug'} = '1' ist aus dem beispiel das was ich ja nicht will.
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
mark05Frage : wie steht es den mittlerweile um die Performance von Moose ?
Das halte ich für völlig unproblematisch.  Ich schreibe auch "kleine" CLI-Apps mit Moose (und 
 MooseX::App::Cmd
MooseX::App::Cmd), weil mir die Performance "Wann ist das Programm fertig entwickelt" viel wichtiger ist.
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 
 Moo
Moo - das übersetzt viel schneller und beherrscht auch die wichtigen OO-Features.  Mit Moose kann man auch zur Laufzeit noch in die Objekte reinschauen und ihre Eigenschaften verändern, damit kann man also noch einige OO-Tricks veranschaulichen.
 perlootut
perlootut und 
 perlobj
perlobj helfen bestimmt besser als PerlCritic, um  sich mit traditionellem OO in Perl vertraut zu machen!