package MyClass;
use Moo;
use Moo::Role();
sub BUILD {
my ( $self, $args ) = @_;
my $module = $args->{'num'} % 2 ? 'Odd' : 'Even';
warn "$args->{'num'} $self loading $module";
Moo::Role->apply_roles_to_object( $self, $module);
return $self;
};
sub baz {
return 'qux';
}
1;
####
sub baz {
die "Died in ", __PACKAGE__;
}
####
1 MyClass=HASH(0x19c12c0) loading Odd at MyClass.pm line 14.
Loaded Odd at Odd.pm line 4.
1 MyClass__WITH__Odd=HASH(0x19c12c0)->bar at test.pl line 11.
Died in Odd at Odd.pm line 11.