Mooseによる近代的なPerl オブジェクト指向

入手

cpan> install 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;
}
Myタグ:
 
人気タグ:
 
Powered by Catalyst