use strict; package other; sub hello { print "otherwise @{[ref shift]}\n"; } package Grandpa; sub hello { my $class = ref $_[0] || $_[0]; print "How do you do, from $class.\n"; } package Dad; our @ISA = 'Grandpa'; sub hello { my $class = ref $_[0] || $_[0]; print "Hiya from $class!\n"; } package Me; our @ISA = 'Dad'; sub new { bless {} } sub hello { print "hello\n"; } package main; my $me = bless {}, 'Me'; # look Ma, no constructor! $me->Grandpa::hello; $me->other::hello; __END__ How do you do, from Me. otherwise Me