my $puzzler = Crossword->new(...); while (my $p = $puzzler->generate) { # do stuff with one possible puzzle }