Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: perl inheritance

by jandrew (Hermit)
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++)


Comment on Re: perl inheritance
Select or Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://961355]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others taking refuge in the Monastery: (20)
As of 2014-09-02 14:45 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite cookbook is:










    Results (25 votes), past polls