Как определить частные или внутренние методы в объектно-ориентированном Perl?
Я использую "изнутри" объекты Дамиана Конвея, как описано, это его замечательная книгаPerl Best Practices построить объектно-ориентированный интерфейс к системе безопасности на моем клиенте. Я сталкиваюсь с необходимостью использования внутренних вспомогательных методов в моем модуле, которые я обычно обозначаю как "_some_method". Однако это, кажется, нарушает инкапсуляцию, так как они могут быть вызваны напрямую через имя пакета. Есть ли способ сделать эти методы действительно частными? В качестве примера,
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
Очевидно, я не хочу, чтобы прямой вызов _some_method был успешным. Есть ли способ гарантировать это?