Estoy usando los objetos "de adentro hacia afuera" de Damian Conway, como se describe en su maravilloso libro Perl Best Practices para construir una interfaz orientada a objetos a un sistema de seguridad en mi cliente. Me doy cuenta de la necesidad de usar métodos internos de ayuda dentro de mi módulo que normalmente designaría como "_some_method". Sin embargo, esto parece romper la encapsulación ya que pueden invocarse directamente a través del nombre del paquete. ¿Hay alguna forma de hacer estos métodos verdaderamente privados? A modo de ejemplo,¿Cómo se definen los métodos privados o internos en Perl orientado a objetos?
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
Obviamente no quiero la llamada directa de _some_method tenga éxito. ¿Hay alguna forma de garantizar esto?
@Randal sí, lo siento, lo siento porque no estaba al tanto de esa regla. – ennuikiller