#!/usr/bin/perl { package a; sub new { my $invocation = shift(); my $class = ref($invocation) || $invocation; my $self = {}; my $bless = bless($self, $class); return $bless; } sub a1 { my $self = shift(); print "hi I'm a\n!"; } sub a2 { my $self = shift(); $self->a1(); } } { package b; @ISA = qw(a); sub a1 { my $self = shift(); print "hi I'm b\n"; } 1; } my $a = new a(); my $b = new b(); $b->a2(); $a->a2();