Using Roles
- does instead of isa
package Pair;
has $_ => (
is => 'ro',
does => 'Eq',
) for qw/a b/;
sub both_are_the_same {
my $self = shift;
return $self->a->equals($self->b) && $self->b->equals($self->a);
}
- Since we only use equals, we don't care about what a and b isa.
- Eq means that equals means what we think it does