Jak zdefiniować metody prywatne lub wewnętrzne w Perlu zorientowanym obiektowo?

Używam przedmiotów „wewnątrz” Damiana Conwaya, jak to opisano, jest jego wspaniałą książkąPerl Najlepsze praktyki skonstruować obiektowy interfejs do systemu bezpieczeństwa u mojego klienta. Spotykam się z potrzebą użycia wewnętrznych metod pomocniczych w moim module, które normalnie oznaczyłbym jako „_some_method”. Jednak wydaje się, że przerywa to hermetyzację, ponieważ mogą być wywoływane bezpośrednio przez nazwę pakietu. Czy jest jakiś sposób, aby te metody były naprawdę prywatne? Jako przykład,

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 

Oczywiście nie chcę, aby bezpośrednie wywołanie metody _some_method powiodło się. Czy jest jakiś sposób na zagwarantowanie tego?

questionAnswers(4)

yourAnswerToTheQuestion