sub show { my $self = shift ; my $proto = ref $self ; my $val = eval "\$${proto}::data"; print $val; print Dumper $val } #### { package Parent; use Data::Dumper ; sub new { my $proto = shift ; return bless {}, $proto } sub show { my $self = shift ; my $val = $self->data; print Dumper $val } } { package Child; use base 'Parent' ; sub data { return { one => 1, two => 2 } } }