La herencia en Perl determina el recorrido de búsqueda de un método. Si el objeto
no se puede encontrar en la clase, recursivamente y en orden primero-profundo
se busca en las clases de las cuales esta hereda, esto es en las clases
especificadas en el vector @ISA
.
Para ser mas precisos, cuando Perl busca por una llamada a un método como
$obj->method()
, realiza la siguiente secuencia de búsqueda:
MyClass
) tiene
una subrutina method
se llama
@ISA
, para cada una de las clases en el vector @ISA
se repiten los pasos 1 y 2
UNIVERSAL
(véase la sección 6.6)
tiene un método con ese nombre, se le llama
MyClass
tiene un método AUTOLOAD
se le llama
AUTOLOAD
, se le llama
UNIVERSAL
tiene un método AUTOLOAD
, se le llama
Esta búsqueda sólo se hace una vez por método. Una vez localizado el método
se utiliza una ''cache'' para acceder al método rápidamente.
Si el vector @ISA
o el vector @ISA
de cualquiera de los antepasados de la clase
es modificado, se limpia la ''cache''.
Casiano Rodríguez León