MotherClass / \ / \ / \ ChildClass1 ChildClass2 #### package MotherClass::ChildClass1; use strict; use vars qw/@ISA/; use MotherClass; @ISA = qw/MotherClass/; sub new { my ($class, $args) = @_; my $self = $class->SUPER::new($args); ... } #### package MotherClass::ChildClass2; use strict; use vars qw/@ISA/; use MotherClass; @ISA = qw/MotherClass/; use MotherClass::ChildClass1; ... sub object_method { MotherClass::ChildClass1::object_method(@_) }