si elle sera accessible...
tous comme les variables avec un _ devant (sauf peut etre avec fields, mais je ne suis pas sur car je ne l'utilise pas)
je pense que tu pourrais troujer des moyens de rendre une fonction innaccessible de l'exterieur, par exemple avec qq chose du genre:
[code]
my $private_sub = sub {
my $self = shift;
my @args = @_;
...
}
$private_sub->($self, "1", "2", "3" );
[\code]
et dans ce cas cette fonction ne sera accessible que la ou $private_sub est accessible, mais bon tu pert la notation objet : tu est obligé de passe $self en premier argument, mais ca revient exactement au meme.
pour rappel:
[code]
my $h = Html->new;
# alors
$h->method(@args);
# est identique à
Html::method($h, @args);
[\code]
sachant que le 2eme est meme un poil plus rapide...
de meme l'appel par deferencement à une focntion comme $private_sub->() est aussi rapide que l'appel directe
fin de la parenthese
pour en revenir à ton soucis, je ne pense pas qu'il faille te prendre la tete à interdir l'acces à une methode: c'est pas vraiment la phylisophie de Perl et du coup c'est pas naturel à faire
le mieux, c'est de faire un POD de ton module ou tu decrit les fonctions publics, qui sotn l'interface de ton module, et ou tu ne décrit pas les method privée (et tu met un _ devant pour t'y retrouver, et pour que le prochain developper Perl qui lira ton code s'y retrouve aussi)
apres si qq s'amuse à relire ton code et appel une fonction privée il sait k'il le fait à ses risques et péril (et si il le fait ca veut peut etre dire que ton interface est incomplete)
et dans ce cas il peut heriter de ta classe et réimplémenter une nouvelle méthode public qui fait ce qu'il veut (ce qui est impossible si tu a rendu ta method utltre privée avec le my $private_sub )
enfin voila koi, c'est à toi de voir