Role example
- This role does nothing on its own
- It must be consumed by a class that has an equals method
package Integer;
use Moose;
with 'Eq';
has 'me' => (isa => 'Int', is => 'rw');
sub equals { my ($self, $a) = @_; return $self->me == $a }
- Now you can:
my $i = Integer->new( me => 42); $i->equals(42); # true $i->not_equals(80); # true
- Roles are introspectable:
Integer->does('Eq') # true
Integer->does('MyWorkForMe'); # false