{ package Animal; sub sound { "WOOOAAARRRR" } sub speak { my $class = shift; print "a $class goes ", $class->sound, "!\n"; } } { package Horse; @Horse::ISA = qw(Animal); sub sound { "neigh" } sub p1 { print "p1: ". shift() ."\n"; } } Horse->speak(); # ok, works as expected Horse::p1("Horse"); # ok, prints "Horse" Horse::speak("Horse"); # Message: # "Undefined subroutine &Horse::speak called..." # So, the inheritance mechanism does not work for this?