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?