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 の実装のほうが筋がいい