2014年10月31日金曜日

【Perl】Mooseの使い方

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