为了速度,我正试图从Moose迁移到Mouse,但遇到了一个showstopper错误。
我正在同一范围内构建两个对象:
sub scope {
my $foo = Foo->new();
my $bar = Bar->new();
}
Foo的BUILD方法正在解雇,但Bar的BUILD方法却没有。有任何想法吗? Foo和Bar都继承自Baz,后者继承自Mouse :: Object。
答案 0 :(得分:6)
你并没有为任何人提供足够的上下文来调试它。
另外,我担心你的评论从Moose迁移到Mouse“为了速度”而没有更好的。有几个包的速度比Mouse或Moose的速度更快。分析您的应用程序可能表明您将99%的时间花在元类补充,访问者访问和对象创建上......此时移植到鼠标可能是合理的。可能会发现您将99%的时间花在业务逻辑上,此时移植到Mouse将无法为您做任何事情。
鼠标非常好,并且有几个特定的用例。当我知道我将在Moose传统上很穷的环境(CGI)中运行时,我已经将它用于生产中。然而鼠标不是(正如一些人似乎声称的)Moose + FAST ......鼠标更像是Moose - Class :: MOP(以及所有已经在MOP级别对Perl进行规范化的黑客攻击)。