use Object::InsideOut qw(class_insideout); #### use base qw(class_insideout); #### Sub-classes (child classes) inherit from base classes (parent classes) by telling Object::InsideOut what the parent class is: package My::Sub; { use Object::InsideOut qw(My::Parent); ... } Object::InsideOut acts as a replacement for the "base" pragma: It loads the parent module(s), calls their "->import()" methods, and sets up the sub-class's @ISA array. Therefore, you should not "use base ..." yourself