Les appels de méthode ont un certain nombre de formes:
appels de méthode, peut-être hérité:
->method()
appelle explicitement sous package :: méthode, que ce soit dans l'arbre d'héritage ou non:
->Package::method()
appelle explicitement la visée à sous, que ce soit dans l'arbre d'héritage ou non:
->$coderef()
appelle la méthode qui aurait été appelé par __PACKAGE__->method()
s'il n'y avait pas de méthode sous dans __PACKAGE__
(NB la classe ou de l'objet à gauche de ->
est hors de propos):
->SUPER::method()
Tout ce qui précède, selon le contenu de $method
:.
->$method()
(même juridique sous use strict;
)
Bien que la première forme soit la plus répandue, il vaut la peine d'en apprendre davantage sur les autres et sur leur fonctionnement.
Geo, si vous voulez apprendre les détails des objets dans perl, prenez une copie de l'objet orienté Perl Damian Conway http://www.manning.com/conway/ Il va dans le détail de différentes façons de utilisez les fonctions OOP de Perl. Il a tout de hachages bénis de base à la génération de méthode dynamique, à exotica comme coderefs bénis. C'est un livre très bien écrit. Mais aussi vérifier Moose. Pour beaucoup, sinon la plupart, les choses Moose est la bonne façon de faire Perl OOP. – daotoad