Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"

Re: perl inheritance

by jandrew (Chaplain)
on Mar 24, 2012 at 04:38 UTC ( #961355=note: print w/replies, xml ) Need Help??

in reply to perl inheritance

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

First Role
package Breakable; use Moose::Role; has 'is_broken' => ( is => 'rw', isa => 'Bool', ); sub break { my $self = shift; print "I broke\n"; $self->is_broken(1); }
Second Role
package Breakdancer; use Moose::Role sub break { }
And a class that uses methods from the Role
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++)

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://961355]
and the daffodils sway...

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (4)
As of 2018-04-23 16:38 GMT
Find Nodes?
    Voting Booth?