use strict; use warnings; package Base; sub method { my ($self) = @_; my $class = ref $self; print "In Base::method(). I'm a $class instance.\n"; } package Derived; push @Derived::ISA, 'Base'; sub new { my ($class) = @_; return bless {}, $class; } sub method { my ($self) = @_; print "In Derived::method()\n"; $self->SUPER::method(); } package main; my $obj = Derived->new(); $obj->method();