moose-role.txt
#=============
package RoleA;
use Moose::Role;
requires 'foo';
before foo => sub {
print "before!\n";
};
#=============
package Class;
use Moose;
sub foo {
print "main!\n";
}
with qw/RoleA/;
# ^ will result in:
# We have encountered an attribute conflict with 'a' during composition
#============
package main;
my $obj = Class->new;
$obj->foo;