Class::Accessor::Mouse
http://d.hatena.ne.jp/gfx/20111119/1321681656
http://tokuhirom.hatenablog.com/entry/2011/11/19/152621
use 5.14.0; package Class::Accessor::Mouse { use Mouse; sub import { my ($class, %args) = @_; my $meta = Mouse->init_meta(for_class => scalar caller); for my $type (qw(rw ro wo)) { next unless ref $args{$type} eq 'ARRAY'; $class->_add_attribute($meta, $type, $args{$type}); } $meta->make_immutable(); }; sub _add_attribute { my ($class, $meta, $type, $attrs) = @_; $meta->add_attribute($_, is => $type) for @$attrs; } } package Hoge { Class::Accessor::Mouse->import( rw => [qw/foo bar/], ); } say Hoge->new->foo('bar');
MouseX::Simple の実装のほうが筋がいい