muchos años me recuerdan un compañero programador aconsejar a esto:¿Cuál es la diferencia entre los nuevos Some :: Class y Some :: Class-> new() en Perl? Hace
new Some::Class; # bad! (but why?)
Some::Class->new(); # good!
Lamentablemente ahora no puedo recordar el/la razón por qué. :(Ambas formas funcionarán correctamente incluso si el constructor no existe realmente en el módulo Some :: Class, sino que se hereda de un elemento primario en alguna parte.
Ninguna de estas formas es igual a Some :: Class :: new(), que no pasará el nombre de la clase como primer parámetro al constructor, por lo que este formulario siempre es incorrecto.
Incluso si las dos formas son equivalentes, encuentro Some :: Class-> new () para ser mucho más claro, ya que sigue la convención estándar para llamar a un método en un módulo, y en perl, el 'nuevo' método no es especial: un constructor podría llamarse cualquier cosa, y new() podría hacer cualquier cosa (aunque por supuesto, generalmente esperamos que sea un constructor).
Otra excelente referencia: [Indirecta pero aún fatal] (http://www.shadowcat.co.uk/blog/matt-s-trout/indirect-but-still-fatal/) – Ether