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