0

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

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

sub scope {

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

}

Foo 的 BUILD 方法正在触发,但 Bar 的 BUILD 方法没有。有任何想法吗?Foo 和 Bar 都继承自 Baz,而 Baz 继承自 Mouse::Object。

4

1 回答 1

6

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

另外,我担心您的评论“为了速度”而从 Moose 迁移到 Mouse,而没有更好的方法。有几个软件包的基准测试速度比 Mouse 或 Moose 都快。分析您的应用程序可能表明您将 99% 的时间用于元类编译、访问器访问和对象创建……此时移植到 Mouse 可能是合理的。事实证明,您将 99% 的时间花在业务逻辑上,此时移植到 Mouse 不会为您做任何事情。

鼠标非常好,并且有几个特定的​​用例。当我知道我将在 Moose 传统上不擅长 (CGI) 的环境中运行时,我在生产中使用了它。然而,Mouse 不是(正如有些人声称的那样)Moose + FAST ... Mouse 更像 Moose - Class::MOP(以及所有在 MOP 级别标准化 Perl 的技巧)。

于 2009-03-07T21:04:38.660 回答