Il y a plusieurs années, je me souviens d'un collègue programmeur conseiller ceci:Quelle est la différence entre new Some :: Class et Some :: Class-> new() dans Perl?
new Some::Class; # bad! (but why?)
Some::Class->new(); # good!
Malheureusement maintenant je ne me souviens pas de la/sa raison. :(Les deux formes fonctionneront correctement même si le constructeur n'existe pas réellement dans le module Some :: Class mais est hérité d'un parent quelque part
Aucune de ces formes ne ressemble à Some :: Class :: new(), qui ne passera pas le nom de la classe comme premier paramètre au constructeur - donc cette forme est toujours incorrecte
Même si les deux formes sont équivalentes, je trouve Some :: Class-> new () pour être beaucoup plus clair, car il suit la convention standard pour appeler une méthode sur un module, et en perl, la méthode 'new' n'est pas spéciale - un constructeur pourrait s'appeler n'importe quoi, et new() pourrait faire n'importe quoi (bien que bien sûr, nous nous attendons généralement à ce qu'il soit un constructeur.)
Une autre excellente référence: [Indirect mais toujours fatale] (http://www.shadowcat.co.uk/blog/matt-s-trout/indirect-but-still-fatal/) – Ether