Paso de parámetros a una subrutina por medio de typeglobs

Ya hemos visto que las referencias permiten el paso de estructuras anidadas a una subrutina, evitando el efecto del aplanamiento de listas. Las referencias simbólicas también proveen una forma alternativa (pero desaconsejada). Los typlegobs nos dan otra via (tampoco recomendable):

lhp@nereida:~/Lperl/src$ cat -n passbyref.pl
 1  #!/usr/local/bin/perl
 2  use strict;
 3  use warnings;
 4
 5  sub sum {
 6    our (@a, @b);
 7    local (*a, *b) = @_;
 8
 9    $a[$_] += $b[$_] for 0..$#a;
10  }
11
12  our @c = 1..4;
13  our @d= 5..8;
14
15  sum(*c, *d);
16  print "@c\n";

Cuando se ejecuta, el programa anterior produce la salida:

lhp@nereida:~/Lperl/src$ ./passbyref.pl
6 8 10 12



Subsecciones
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