Wie definiere ich private oder interne Methoden in objektorientiertem Perl?

Ich benutze Damian Conways "Inside-Out" -Objekte, wie es in seinem wundervollen Buch beschrieben istBest Practices für Perl eine objektorientierte Schnittstelle zu einem Sicherheitssystem bei meinem Kunden aufzubauen. In meinem Modul muss ich interne Hilfsmethoden verwenden, die ich normalerweise als "_some_method" bezeichnen würde. Dies scheint jedoch die Kapselung zu stören, da sie direkt über den Paketnamen aufgerufen werden können. Gibt es eine Möglichkeit, diese Methoden wirklich privat zu machen? Als Beispiel,

use SOD::MyOOInterface;

my $instance1 = SOD::MyOOInterface->new();
$instance1->_some_method;  #this produces an error: 
SOD::MyOOInterface::_some_method;   # this results in a 
                                    # successful method call 

Offensichtlich möchte ich nicht, dass der direkte Aufruf von _some_method erfolgreich ist. Gibt es eine Möglichkeit, dies zu garantieren?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage