そのかわり、Sub::Attributeというモジュールが適任っぽいのがわかった。
例によってチラ裏的なコード。
package HogeFuga;
use Data::Dumper;
use Mouse;
use Sub::Attribute;
sub myattr : ATTR_SUB {
print Dumper( { attr => [ @_ ] } );
}
sub hoge : myattr( 'a123', 'xyz' ) {
my $self = shift;
print Dumper( { arg => [ @_ ] } );
}
__PACKAGE__->meta->make_immutable;
no Mouse;
my $c = HogeFuga->new;
$c->hoge( 'aaa', 'bbb' );
結果は以下の通り。
$VAR1 = {
'attr' => [
'HogeFuga',
\*HogeFuga::hoge,
sub { "DUMMY" },
'myattr',
'\'a123\', \'xyz\''
]
};
$VAR1 = {
'arg' => [
'aaa',
'bbb'
]
};
0 件のコメント:
コメントを投稿