Subroutine MyClass::before redefined at [...]/5.22.0/Role/Tiny.pm line 58. Subroutine MyClass::after redefined at [...]/5.22.0/Role/Tiny.pm line 58. Subroutine MyClass::around redefined at [...]/5.22.0/Role/Tiny.pm line 58. Subroutine MyClass::with redefined at [...]/5.22.0/Role/Tiny.pm line 67. #### package MyClass::Child; use Moo::Role; sub foo { die 'horribly'; } sub bar { return 'bar'; } 1; #### package MyClass; use Moo; use Role::Tiny(); sub BUILD { my $self = shift; Role::Tiny->apply_roles_to_object( $self, 'MyClass::Child' ); return $self; }; sub foo { return 'foo'; } 1; #### $ perl -MMyClass -E '$o = MyClass->new; say $o->foo, $o->bar;' horribly at MyClass/Child.pm line 5. #### package MyClass; use Moo; use Role::Tiny(); sub BUILD { my $self = shift; Role::Tiny->apply_roles_to_package( __PACKAGE__, 'MyClass::Child' ); return $self; }; sub foo { return 'foo'; } 1; #### $ perl -MMyClass -E '$o = MyClass->new; say $o->foo, $o->bar;' foobar