8.8 The SUPER Way of Doing Things
By changing the
Animal class to the SUPER class
in that invocation, you get a search of all your superclasses
(classes listed in @ISA) automatically:
{ package Animal;
sub speak {
my $class = shift;
print "a $class goes ", $class->sound, "!\n";
}
}
{ package Mouse;
@ISA = qw(Animal);
sub sound { "squeak" }
sub speak {
my $class = shift;
$class->SUPER::speak;
print "[but you can barely hear it!]\n";
}
}
Thus, SUPER::speak means to look in the current
package's @ISA for
speak, invoking the first one found if
there's more than one. In this case, you look in the
one and only base class, Animal, find
Animal::speak, and pass it
"Mouse" as its only parameter.
|