Mooseによる近代的なPerl オブジェクト指向
入手
cpan> install Moose
- git レポジトリ: git://jules.scsys.co.uk/gitmo/Moose.git
- CPAN: http://search.cpan.org/dist/Moose
クラス定義
空のクラス
package MyClass; use Moose; no Moose; __PACKAGE__->meta->make_immutable();
Mooseで定義したクラスは自動的にMoose::Objectを継承します(それ以外の継承の場合はMoose::Object以外のベースクラスからの継承を参照)。
my $object = MyClass->new();
要素の定義
package MyClass; use Moose; has 'attr' => ( is => 'rw', # 読み・書き isa => 'Str', # 文字型 ); no Moose; __PACKAGE__->meta->make_immutable();
has() でアトリビュートを指定します。型やその他属性を指定できます。
Moose::Object以外のベースクラスからの継承
package MyClass; use Moose; extends 'NonMooseObject'; sub new { my $class = shift; my $self = $class->SUPER::new(@_); $self = $class->meta->new_object( __INSTANCE__ => $self, @_ ); return $self; }
Showing changes from previous revision. Removed | Added
