Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
use MooseX::Declare;
role DoesNegated {
method negated { $self->new( x => -$self->x, y => -$self->y ) }
}
role DoesTranspose {
method transpose { $self->new( x => $self->y, y => $self->x ) }
}
class Point with DoesNegated with DoesTranspose {
has x => ( isa => 'Int', is => 'rw' );
has y => ( isa => 'Int', is => 'rw' );
method inspect { say $self->x . ' @ ' . $self->y }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment