Chapter 16. Some Advanced Object Topics
You might wonder, “Do all objects inherit from a common class?” “What if a method is missing?” “What about multiple inheritance?” or “How can I tell what sort of object I have?” Well, wonder no more. This chapter covers these subjects and more.
As we define classes, we create inheritance hierarchies through the
@ISA variables in each package.
To search for a method, Perl wanders through the
@ISA tree until it finds a match or
After the search fails however, Perl always looks in one special
invokes a method from there, if found, just as if it had been located in
any other class or superclass.
One way to look at this is that
UNIVERSAL is the base class from which all
objects derive. Any method we place here, such as:
" can do the fandango!\n"
enables all objects of our program to be called as
Generally, we should provide a
fandango method for specific classes of
interest, and then provide a definition in
UNIVERSAL::fandango as a backstop, in case Perl
can’t find a more specific method. A practical example might be a
data-dumping routine for debugging or maybe a marshaling strategy to dump
all application objects to a file. We provide the general method in
UNIVERSAL and override it in the
specific classes for unusual objects.
Obviously, we should use
UNIVERSAL sparingly because there’s only one universe of objects, and ...