* Mouse コンストラクタ(インスタンス生成時処理) [#s416d1f1]
* インスタンス生成時処理 [#s416d1f1]

*** User.pm [#y7db4d50]
 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 [#hfcd9bc3]
 my $user = User->new( name => 'taro' );

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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS