c:\@Work\Perl\monks>perl -le "use warnings; use strict; ;; use List::MoreUtils qw(last_index); ;; my @primes = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47); print qq{primes: @primes}; ;; sub listprimes { my ($n) = @_; ;; my $last_i = last_index { $_ <= $n } @primes; ;; return join ' ', @primes[ 0 .. $last_i ]; } ;; sub random { my ($lo, $hi) = @_; return $lo + int rand $hi - $lo + 1; } ;; for (1 .. 5) { my $r = random(10, 50); my $f = listprimes($r); print qq{r == $r: $f}; } " primes: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 r == 50: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 r == 32: 2 3 5 7 11 13 17 19 23 29 31 r == 18: 2 3 5 7 11 13 17 r == 47: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 r == 25: 2 3 5 7 11 13 17 19 23