#================= # Main require model::MAKE_BASIS; #================= # The following can live in model/MAKE_BASIS.pm package model::MAKE_BASIS; our @ISA= ( qw(Master_Classes::Make pm::Section), @ISA); use Data::Dumper; use pm::Section; $RULES = inheir_merge( exports => { # Environment variables to export at program's runtime. }, opts => { # A hash of options that get passed into a program. }, # Time limit for execution timeout => 12 ); #================= # The following lives in pm/Section.pm package pm::Section; use Data::Dumper; use qw(Exporter); our @ISA = qw(Exporter); our @EXPORT = qw(import inheir_merge); our @EXPORT_OK = qw(import inheir_merge); sub new { my $this = shift; my $class = ref($this) || $this; my $self = { # Empty definition just for example }; bless $self, $class; $self->validate(); } sub import { __PACKAGE__->export_to_level(1, qw(inheir_merge initialize)); } sub inheir_merge { my $class = ref(caller()) || caller(); my $self = {}; bless $self, $class; $self->SUPER::inheir_merge(@_) if($self->SUPER ne __PACKAGE__ ); }