# perl 5.10 sub ENDOFITERATION { undef }; # some magic value that signals the end of all values sub upto { my $start = 0; my $stop = shift; return sub { if ($start < $stop) { return $start++ } else { return ENDOFITERATION }; }; };