Egy osztályban csak a metódusok öröklésére van támogatás az @ISA tömbbön keresztül. Ez egy modul neveket tartalmazó tömb. Ha egy metódust nem található meg az aktuális package-ban, akkor az ebben a tömbben felsorolt modulok lesznek bejárva a hiányzó alprogramért. Ez egy mélységi keresés lesz. Ha itt sem talál semmit, és van egy AUTOLOAD nevű függvény, akkor megpróbálja ezzel előszedetni a hiányzó eljárást. Ha ez a lehetőség sem járt sikerrel, akkor egy UNIVERSAL-nak nevezett modulban fog keresgélni a rendszer.
Az @ISA tömb szépsége az, hogy menet közben is lehet módosítani, azaz menet közben megváltoztathatjuk egy osztály leszármazási fáját! Nyilvánvalóan az adattagok öröklésére is szükség van egy objektum-orientált nyelvben, ez a Perlben az @ISA tömb segítségével megvalósítható.
package A;
sub new {
my $type = shift;
my $self = {};
$self->{'a'} = 42;
bless $self, $type;
}
package B;
@ISA = qw( A ); # A a B ősosztálya
sub new {
my $type = shift;
my $self = A->new;
$self->{'b'} = 11;
bless $self, $type;
}
package main;
$c = B->new;
print ,,a = '', $c->{'a'}, ,,\n'';
print ,,b = '', $c->{'b'}, ,,\n'';