LLamada con Ampersand y sin Lista de Argumentos

Otra forma de llamar una subrutina es usar & pero sin lista de argumentos. En tal caso, los contenidos actuales del array especial @_ se pasan como argumentos a la subrutina. Ejemplo:

sub checked_inverse {
  die "can't invert 0" if $_[0] == 0;
  my $inv  = &inverse; # llama a &inverse con los argumentos actuales
  die "inversion failed" unless $inv*$_[0] == 1;
  return $inv;
}
Observe que esto significa que hay una importante diferencia entre:
&checked_inverse # significa checked_inverse(@_);
y
checked_inverse; # significa checked_inverse();

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