Mouse コンストラクタ(インスタンス生成時処理)

User.pm

 package User;
 use Mouse;
 has 'name' => (is => 'rw', isa => 'Str');
 
 sub BUILD {
    my ( $self, $args ) = @_;
    say "DEBUG: " . $self->name;
 }
 __PACKAGE__->meta->make_immutable();
 1;

main.pl

 my $user = User->new( name => 'taro' );

説明

  • インスタンス生成時にBUILD()に記述された処理が実行される。
  • ここではUser->new()実行時にBUILD()が実行される。
  • BUILD()では$selfに加えて、インスタンス生成時に渡した引数も渡される。
    • すなわち、ここでの$argsは( name => 'taro' )。
  • BUILD()に返り値は不要。

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS