package BaseClass; sub _classobj { my $invocant = shift; my $class = ref $invocant || $invocant; no strict "refs"; return \%$class; } sub new { my $invocant = shift; my $class = ref $invocant || $invocant; my $classData = $class->_classobj(); my $name = $classData->{Column_Header}; my $value = (@_) ? shift : undef; bless { name => "$name", value => "$value", cdata => \%classData, }, $class; } sub get_column { my $invocant = shift; my $class = ref ($invocant) || $invocant; my $cdata = $class->_classobj; unless defined "$cdata" { print "class data not found \n"; die; } my $column = $$cdata->{Input_column}; return $column; } 1;