La LLamada a un Método de Clase

Podremos crear el objeto con una llamada como la siguiente:

$obj = Biblio::Doc->new(1, "Asimov", "Bruguera", 
   "Los propios dioses", 1989, "unknown");
o bien usando esta otra sintáxis:
$obj = new Biblio::Doc(1, "Asimov", "Bruguera", 
   "Los propios dioses", 1989, "unknown");

Lo que sucede cuando Perl ve una llamada a una subrutina seguida del nombre de un paquete (new Biblio::Doc) o una llamada con la sintáxis de paquete seguido de flecha seguido de un método (Biblio::Doc->new) es que llama a una subrutina con ese nombre en ese paquete, y le pasa como primer argumento el nombre del paquete. Así, el primer argumento que recibe el constructor new es el nombre de la clase, esto es Biblio::Doc. Así pues la línea 2

  my $class = shift;
Obtiene la clase Biblio::Doc.

La llamada de la línea 4:

$class->_incr_count();
es, por tanto, otro ejemplo de esta forma de llamada. En este caso tenemos además un referenciado simbólico via $class.

Casiano Rodríguez León
Licencia de Creative Commons
Principios de Programación Imperativa, Funcional y Orientada a Objetos Una Introducción en Perl/Una Introducción a Perl
por Casiano Rodríguez León is licensed under a Creative Commons Reconocimiento 3.0 Unported License.

Permissions beyond the scope of this license may be available at http://campusvirtual.ull.es/ocw/course/view.php?id=43.
2012-06-19