El siguiente ejemplo muestra la construcción de un iterador. El generador podria usarse como sigue:
16 my $row = iterator 1, 4; # creación de un iterador de 1 a 4
17 my $col = iterator 1, 5, 2; # de 1 a 5 pero con paso 2
18 my ($r, $c);
19 while ($row->($r)) {
20 print "$r: ";
21 while ($col->($c)) {
22 print "$c ";
23 }
24 print "\n";
25 }
Cada llamada a iterators
crea un conjunto nuevo de variables léxicas
y una nueva subrutina anónima. Es posible
simultanear de este modo dos clausuras, cada una con
su propio rango y paso:
lhp@nereida:~/Lperl/src$ perl iterators.pl 1: 1 3 5 2: 1 3 5 3: 1 3 5 4: 1 3 5 lhp@nereida:~/Lperl/src$
Casiano Rodríguez León
