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.



Learning Perl Objects, References & Modules
Learning Perl Objects, References, and Modules
ISBN: 0596004788
EAN: 2147483647
Year: 2003
Pages: 199

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net