- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Perl-Mouse/インスタンス生成時処理 (BUILD) へ行く。
- 1 (2010-12-24 (金) 00:46:09)
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()に返り値は不要。