use strict; use warnings; my (@prime, $p, $limit) = 2; PRIME: for $p (3..100) { $limit = int sqrt($p); for (@prime) { last if $_ > $limit; next PRIME if $p % $_ == 0; } push @prime, $p; }