2009-02-26 11 views
0

私はスピードのためにムースからマウスに移行しようとしていますが、ショーストップエラーが発生しました。私は、同じスコープ内の2つのオブジェクトを構築していますPerlのムースからマウスへの移行 - マウスが実行されないBUILD

sub scope { 

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

} 

はFooのBUILDメソッドが発射されたが、バーのBUILDメソッドではありません。何か案は? FooとBarはMouse :: Objectから継承するBazを継承しています。

+0

この投稿にperlとしてタグを付けると、運が良いかもしれません。 – daotoad

答えて

6

これをデバッグするのに十分なコンテキストを提供しているわけではありません。

また、ムーズからマウスに「スピードのために」より良いものを使わずにマイグレートすることに心配しています。そこにはいくつかのパッケージがあり、その速度はマウスやムーズよりも速いです。アプリケーションをプロファイリングすると、メタクラスの合併症、アクセサーアクセス、およびオブジェクトの作成に99%の時間を費やしていることがわかります。その時点で、Mouseへの移植が正当化される可能性があります。ビジネスロジックで99%の時間を費やして、マウスへの移植が何もしないことが判明するかもしれません。

マウスは優れており、いくつかの具体的な使用例があります。私はMooseが伝統的に(CGI)に恵まれていない環境で走っていることを知っていたときに、プロダクションで使ってきました。しかし、マウスは(一部の人々が主張するように見えるように)ムース+ファースト...マウスはより多くのムースクラス:: MOP(およびMOPレベルで正規化Perlに入ったすべてのハック)です。

関連する問題