http://qs321.pair.com?node_id=1218282


in reply to object oriented Perl advice / constructor creation in child class

Perl supports multiple inheritance. In case several predecessors provide a method of the same name, Perl uses the "method resolution order", see mro for details.

Example:

MyA.pm

package MyA; use warnings; use strict; sub new { bless { a => 'A' }, shift } sub a { shift->{a} } __PACKAGE__

MyB.pm

package MyB; use warnings; use strict; sub new { bless { b => 'B' }, shift } sub b { shift->{b} } __PACKAGE__

MyC.pm

package MyC; use warnings; use strict; use parent qw{ MyA MyB }; # Multiple inheritance, MyA takes precedenc +e __PACKAGE__

script.pl

#!/usr/bin/perl use warnings; use strict; use MyC; my $c = 'MyC'->new; print $c->a; print $c->b; # uninitialized value

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,