世の中のMoose期が過ぎ去った感がある今日この頃ですが、ここにきてやっとMooseをさわりはじめました。

なんで突然Mooseをさわりはじめたかというと、typesterkamaitachiをちょっと使ってみようと思って見ていたらMooseを使っていて、まずMooseがわからないとコードが読めなかったからです。

ということで、ファーストインプレッションは以下。

  • hasとかextendsはなんとなくわかる
  • use Moose;するとuse strict;やuse warnings;が必要ないんだね
  • no Moose;している理由ってhasとかextendsとかのメソッド(pod内でkeywordと書かれているもの)をそれ以降で使えないようにしたいからなのね
  • __PACKAGE__->meta->make_immutable;はそのクラスをimmutableにして、memorizeすることによりMooseの速度を上げる
  • Mooseを使ったモジュールの最後に1;ってやってないのあって、変わりに__PACKAGE__->meta->make_immutable;してる
  • なんか日本語のドキュメントが少ない。Moose::Cookbookがけっこう充実してるのでまずはその辺を読めばいいかも
  • sub BUILD {} ってのがあってMoose的にはnew()は書き換えないで、その代わりにBUILD()を使うらしい
  • use Moose;するとそのクラスがMoose::Objectの子クラスいなる(という動作の原理をあとで調べたい)
以下参考にしたページ
http://blog.yappo.jp/yappo/archives/000579.html
http://d.hatena.ne.jp/tokuhirom/20080504/1209891158
http://d.hatena.ne.jp/fbis/20080814/1218689670
http://d.hatena.ne.jp/fbis/20080815/1218776733
http://perl-mongers.org/2008/05/moose.html
http://mt.endeworks.jp/d-6/2008/07/moose.html
http://trombik.mine.nu/~cherry/w/index.php/2008/03/22/1202/oop-with-moose