Classes are great, what about Roles?
- Roles can be thought of as partial or incomplete classes.
- Roles are composed, not inherited.
- Roles are horizontal re-use, rather than vertical.
package Equality;
use Moose::Role;
requires 'equal_to';
sub not_equal_to {
my ($self, $other) = @_;
not $self->equal_to($other);
}