Mooseとは簡単にクラスを作ることができるモジュールのようだ。newとかは実装不要。
package Foo;
use Moose;
extends 'FooParent'; #これで親モジュールを継承できる
has name => { #アクセサを定義する関数
is => 'rw', #rwは読み書きができ、roは読み取りだけ($Foo->name,$Foo->name("hoge"))
isa => 'Str', #型の指定を行う
default => "Bob", #デフォルト値を指定できる。sub {Hoge->config}のようにサブルーチンも可
required => 1, #必須パラメータの場合は1を指定する
}
sub hoge { #メソッドの定義は普通に行う
print "My name is".shift->name."\n";
}
参考:
http://perldoc.jp/docs/modules/Moose/Manual.pod