use 5.10.1; use strict; use warnings; { package Base; sub new { my $class= shift; return bless ({}, $class); } sub baz { my ($self,$x)= @_; say "Baz called: " . $self . " ($x)"; } } # end of class { package Derived; our @ISA = 'Base'; } # end of class say "I'm running."; my $d= Derived->new; $d->baz(1); Base->baz(2); Derived->baz(3);