* 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()に返り値は不要。