Los conjuntos son representados mediante listas. Dado que el conjunto vacío es un subconjunto de cualquier conjunto y que el conjunto vacío es representado mediante la lista vacía no podemos usar como criterio de finalización el retorno de la lista vacía.
lhp@nereida:~/Lperl/src$ sed -ne '20,$p' allsubsets.pl | cat -n
     1  my @S;
     2  FOREVER: {
     3    @S = $s->();
     4
     5    local $" = ', ';
     6    print "(@S)\n";
     7
     8    last if (@S == @ARGV);
     9
    10    redo FOREVER;
    11  }
Casiano Rodríguez León
