在Perl中从Moose迁移到Mouse - 鼠标不执行BUILD

时间:2009-02-26 18:14:42

标签: perl moose perl-mouse

为了速度,我正试图从Moose迁移到Mouse,但遇到了一个showstopper错误。

我正在同一范围内构建两个对象:

sub scope {

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

}

Foo的BUILD方法正在解雇,但Bar的BUILD方法却没有。有任何想法吗? Foo和Bar都继承自Baz,后者继承自Mouse :: Object。

1 个答案:

答案 0 :(得分:6)

你并没有为任何人提供足够的上下文来调试它。

另外,我担心你的评论从Moose迁移到Mouse“为了速度”而没有更好的。有几个包的速度比Mouse或Moose的速度更快。分析您的应用程序可能表明您将99%的时间花在元类补充,访问者访问和对象创建上......此时移植到鼠标可能是合理的。可能会发现您将99%的时间花在业务逻辑上,此时移植到Mouse将无法为您做任何事情。

鼠标非常好,并且有几个特定的​​用例。当我知道我将在Moose传统上很穷的环境(CGI)中运行时,我已经将它用于生产中。然而鼠标不是(正如一些人似乎声称的)Moose + FAST ......鼠标更像是Moose - Class :: MOP(以及所有已经在MOP级别对Perl进行规范化的黑客攻击)。