Mooseは”an extension of the Perl 5 object system”だそうで、なんかすごいらしい。使ってみるとattributeやaccessorの追加も簡単で、型の確認も自動でやってくれてrobustなclassを作るのに便利。attributeがarrayやhashのreferenceだったら、contextに応じて自動的にdereferenceしてくれるとか、extendやoverrideがやりやすいとか、他にもいろいろあるらしい。Mooseは自動的にhash-basedのobjectを作ってくれる。methodを追加する方法も古典的なPerl5のOOPと同じ。 package Foo; use strict; use warnings; use Moose; sub say { my ($self, $str) = @_; print "$str\n";