Role example

package Integer;
use Moose;
with 'Eq';

has 'me' => (isa => 'Int', is => 'rw');

sub equals { my ($self, $a) = @_; return $self->me == $a }
my $i = Integer->new( me => 42);
$i->equals(42);     # true
$i->not_equals(80); # true
Integer->does('Eq')           # true
Integer->does('MyWorkForMe'); # false