Para escribir un método para una clase (package) dada, basta con escribir la correspondiente subrutina dentro del paquete.
Así el método get_author queda descrito mediante la subrutina:
sub get_author { $_[0]->{_author} }
Sin embargo, llamar a Biblio::Doc::get_author como método
conlleva una extensión a la sintáxis flecha de Perl. Si se tiene
que $obj es una referencia a un objeto de la clase
Biblio::Doc, podemos acceder a cualquier método del 
paquete usando la notación $obj->method donde
method es cualquier método de la clase.
Por ejemplo:
$obj->get_author()Es equivalente a
Biblio::Doc::get_author($obj);Esto es: cuando una subrutina es llamada como método, la lista de argumentos que recibe comienza con la referencia al objeto a través del cual fué llamada y va seguida de los argumentos que fueron explicitados en la llamada al método.
Observe que la última llamada trata a get_author como una subrutina
ordinaria, mientras que la primera la usa ''como método''.
La sintáxis ''flecha'' para la llamada a un método es consistente 
con el uso de la flecha para otros tipos de referencias en Perl. Así,
al igual que escribimos $hsh_ref->{clave} o bien
$sub_ref->(4,7,8) también escribimos $obj_ref->metodo(@args).
Una diferencia de esta última notación con las anteriores estriba
en que el referente tiene diferentes conductas, esto es, tiene varios 
metodos y la conducta concreta que queremos producir se especifica 
escribiendo el nombre del método después de la flecha.
Casiano Rodríguez León
