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