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
