package MyMother; use strict; use vars qw/@ISA/; use Exporter; @ISA = qw/Exporter/; sub new { my ($class, @args) = @_; my $self = { MODIFIED => 0, TYPE => $args[0], }; bless $self, $class } sub modified { $_[0]->{MODIFIED} } #### package MyChild; use strict; use vars qw/@ISA/; use MyMother; @ISA = qw/MyMother/; sub new { my ($class, @args) = @_; my $self = $class->SUPER::new(@args); bless $self, $class; if ($self->{TYPE} == 1) { $self->modified = sub { 0 }; } $self; } #### #!/usr/bin/perl -wd use MyChild; my $ch = MyChild->new(2); $ch->{MODIFIED} = 1; print $ch->modified."\n"; $ch = MyChild->new(1); $ch->{MODIFIED} = 1; print $ch->modified."\n";