Control de la LLamada Mediante Prototipos

Si queremos que la interfaz de shift2 sea similar a la de shift debemos hacer uso de prototipos. Podemos redeclarar la función como:

sub shift2(\@) { splice @{$_[0]}, 0, 2 }

El prototipo \@ indica dos cosas:

Las llamadas siguientes producen error:
@x = shift2 %a
Type of arg 1 to main::shift2 must be array (not hash dereference) 

@x = shift2 \@a
Type of arg 1 to main::shift2 must be array

@x = shift2 @a, @b
Too many arguments for main::shift2

Como se ve en el ejemplo, se comprueba que el número y la clase de los parametros coinciden.

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