Moose is kind of a deep place to jump into, if you are new to OOP in perl, but the things you are asking for are fairly simple to do in the Moose framework.
In Moose there are separate ideas of a Class and a Role and objects created from these blocks can be joined either at the Class level or the instance level.
An example from the documentation for basic pre-instance mixing and method conflicts is found in the Moose::Role Manual
Second Rolepackage Breakable; use Moose::Role; has 'is_broken' => ( is => 'rw', isa => 'Bool', ); sub break { my $self = shift; print "I broke\n"; $self->is_broken(1); }
And a class that uses methods from the Rolepackage Breakdancer; use Moose::Role sub break { }
package FragileDancer; use Moose; with 'Breakable' => { -alias => { break => 'break_bone' } }, 'Breakdancer' => { -alias => { break => 'break_dance' } };
Update: The Moose is flying part I and II are the gentlest introductions that I know of. (by Randal L. Schwartz++)
In reply to Re: perl inheritance
by jandrew
in thread perl inheritance
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |