use strict; use warnings; use Test::More; { package My::Custom::Meta::Attr; use Moose; extends 'Moose::Meta::Attribute'; } { package My::Fancy::Role; use Moose::Role; has 'bling_bling' => ( metaclass => 'My::Custom::Meta::Attr', is => 'rw', isa => 'Str', ); } { package My::Class; use Moose; with 'My::Fancy::Role'; } my $c = My::Class->new; isa_ok($c, 'My::Class'); ok($c->meta->has_attribute('bling_bling'), '... got the attribute'); isa_ok($c->meta->get_attribute('bling_bling'), 'My::Custom::Meta::Attr'); done_testing;