MouseとMouseX::Foreignを使ったクラスを作っているのですが、after 'new'やaround 'new'でフックしようとすると全く関数が実行されません。その後でmake_immutable()してるところを削ると動くのですが・・・いい解決方法はないでしょうか

Asked by  Dsc00001_normal lestrrat
このエントリーをはてなブックマークに追加

1 Answers 1 Followers - 

__gfx__ Fuji, Goro

ご質問の件ですが、結論から言うとPerl 5.10以上を使っている限り実はmake_immutale()にほとんど意味はありません。Mooseとちがってmake_immutable()が実際に何かをするわけではなく、make_immutable()時にnewを上書きするという挙動もMooseと合わせるためだけにやっていることです。
なのでAny::Mooseを介さずMouseで固定なのであれば、make_immutable()をしなくても特に問題はないはずです。

ただなぜnewをhookしたいのかはちょっと分かりません。BUILDARGSやBUILDではいけないのでしょうか。

10 months ago

Question Status:

Perlのアプリケーションをmod_perlで動かす場合とFastCGIで動かす場合とStar...

2 Answers 9 Followers

Mac OS X Lion でperlbrew + cpanm がちゃんと動作するのかが知りた...

2 Answers 3 Followers

Mac OS X LionでDBD::mysqlのビルドに失敗するので、解決方法があるのならご...

2 Answers 1 Followers

MySQLで画像データを格納するのにLONGBLOB型のフィールドを2つ用意したがperlでC...

0 Answers 1 Followers

Following Users

1 人がこの質問をフォローしています。

Dsc00001_normal