package Father; sub new { my $class = shift; return bless { news => undef }, $class; } 1; #### package Daughter; use parent qw(Father); sub status { my $self = shift; $self->{news} = 'bad'; return $self; } sub other { my $self = shift; return $self; } 1; #### package Son; use parent qw(Father); sub set { my $self = shift; $self->{news} = 'good'; return $self; } 1; #### use lib '.'; use Daughter; use Son; use Data::Dumper; my $daughter = Daughter->new()->status; print Dumper($daughter); my $son = Son->new()->set; print Dumper($son); $daughter->other; print Dumper($daughter); #### $ perl 11156317.pl $VAR1 = bless( { 'news' => 'bad' }, 'Daughter' ); $VAR1 = bless( { 'news' => 'good' }, 'Son' ); $VAR1 = bless( { 'news' => 'bad' }, 'Daughter' );