# perldoc > Class::ISA

---
type: CommandReference
command: Class::ISA
mode: perldoc
section: ""
source: perldoc
---

## Quick Reference

- `Class::ISA::super_path($CLASS)` — returns ordered list of superclasses (without $CLASS or UNIVERSAL)
- `Class::ISA::self_and_super_path($CLASS)` — same as super_path but includes $CLASS as first element
- `Class::ISA::self_and_super_versions($CLASS)` — returns hash of $CLASS and superclasses with their $VERSION values

## Name

Class::ISA — report the search path for a class's ISA tree

## Synopsis

perl
# Suppose ISA tree is:
@Food::Fishstick::ISA = qw(Food::Fish  Life::Fungus  Chemicals);
@Food::Fish::ISA      = qw(Food);
@Food::ISA            = qw(Matter);
@Life::Fungus::ISA    = qw(Life);
@Chemicals::ISA       = qw(Matter);
@Life::ISA            = qw(Matter);
@Matter::ISA          = qw();

use Class::ISA;
print "Food::Fishstick path is:\n ",
      join(", ", Class::ISA::super_path('Food::Fishstick')),
      "\n";
Output:

Food::Fishstick path is:
 Food::Fish, Food, Matter, Life::Fungus, Life, Chemicals
## Functions

- `Class::ISA::super_path($CLASS)` — returns the ordered list of names of classes Perl would search to find a method, with no duplicates. $CLASS itself is not included. UNIVERSAL is not included (add it manually if needed).

- `Class::ISA::self_and_super_path($CLASS)` — like `super_path` but includes $CLASS as the first element.

- `Class::ISA::self_and_super_versions($CLASS)` — returns a hash keyed by $CLASS and all its superclasses, with values being each class's `$VERSION` (or `undef` if none). The implementation serves as a model for uses of `self_and_super_path` and `super_path`.

## Examples

perl
use Class::ISA;
my @path = Class::ISA::super_path('Food::Fishstick');
print join(", ", @path);  # Food::Fish, Food, Matter, Life::Fungus, Life, Chemicals
## Notes

- Class::ISA does not export anything; call functions with full package name.
- Despite its name, it is a package, not a class.
- ISA tree cycles are handled by never revisiting a class (Perl would die on actual cycles).
- The functions read @ISA at runtime — no memoization; changes to @ISA are reflected.
- The UNIVERSAL class is not automatically included; append it if needed:

  ```perl
  @supers = (Class::ISA::super_path($class), 'UNIVERSAL');
  
## See Also

- [perldoc Class::ISA](https://perldoc.perl.org/Class::ISA)
- [perlobj](https://perldoc.perl.org/perlobj) — Perl objects
- [UNIVERSAL](https://perldoc.perl.org/UNIVERSAL) — the base class for all Perl classes