2009-02-26 12 views
0

J'essaye de migrer de Moose vers Mouse dans l'intérêt de la vitesse mais j'ai rencontré une erreur showstopper.Migration de Moose vers la souris en Perl - La souris ne s'exécute pas BUILD

Je construis deux objets dans la même portée:

sub scope { 

    my $foo = Foo->new(); 
    my $bar = Bar->new(); 

} 

La méthode de construction de Foo est mise à feu, mais la méthode de construction de Bar n'est pas. Des idées? Foo et Bar héritent de Baz qui hérite de Mouse :: Object.

+0

Vous pourriez avoir plus de chance si vous étiez aussi sur perl. – daotoad

Répondre

6

Vous ne fournissez pas vraiment assez de contexte pour que quelqu'un puisse le déboguer.

Aussi je m'inquiète de votre commentaire migrant de Moose à Mouse "dans l'intérêt de la vitesse" sans avoir un meilleur. Il existe plusieurs packages qui comparent plus rapidement que Mouse ou Moose pour la vitesse. Le profilage de votre application peut montrer que vous passez 99% de votre temps à la complication des métaclasses, à l'accès aux accesseurs et à la création d'objets ... à quel point le portage vers Mouse peut être justifié. Il se peut que vous passiez 99% de votre temps dans la logique métier, point à partir duquel le portage vers Mouse ne fera rien pour vous.

La souris est excellente, et a plusieurs cas d'utilisation spécifiques. Je l'ai utilisé en production quand j'ai su que je courrais dans un environnement où Moose est traditionnellement pauvre (CGI). Cependant, la souris n'est pas (comme certaines personnes semblent le prétendre) Moose + FAST ... La souris est plus Moose - Class :: MOP (et tous les hacks qui sont allés normaliser Perl au niveau MOP).