Allows you to scan @ISA
—in order and without duplicates—for
names of classes that Perl would scan to find a method. This is
important when using classes that are derived from other classes,
which are themselves derived from other classes, and so forth.
Class::ISA is bundled with the Perl 5.8 source kit.
Let’s say that you called SomeClass->method()
. Perl searches for
method()
first in SomeClass, but
will search its superclasses for method()
if it doesn’t find it in SomeClass.
For example:
@SomeClass::ISA = qw(SomeOther SomeOtherOther SomeOtherOtherOther); use Class::ISA; print "SomeClass::ISA path is: ", join(", ", Class::ISA::super_path(`SomeClass')), " ";
This prints:
SomeOther, SomeOtherOther, SomeOtherOtherOther
Class::ISA doesn’t export anything. If classes erroneously
inherit from each other; i.e., if there’s a loop (or cycle) between
what’s inherited between classes, Perl throws an error, and Class::ISA
itself will ignore the loop. If Perl can’t find the method in the
@ISA
tree, it looks in UNIVERSAL,
but Class::ISA does not. You may do something like the following to
search in UNIVERSAL as well:
@supers = (Class::Tree::super_path($CLASS), `UNIVERSAL'),
Here are the Class::ISA methods.
3.15.219.130