In fact you seem to be calculating all of the odd numbers rather than the prime numbers.
Indeed, and in a very clumsy way, including the deprecated use of a map in void context...
Update: at the moment of this update this node has gained a reputation of -4. So far so fine. However this should imply that at least four persons did disagree with my claim. I must deduce that those persons think that
@prime = (1,2);
map { push(@prime,$_) if (($_ % 2) != 0) } (2 .. 100);
is a very
nice, clean and elegant way to obtain the list of "primes" (in
l.frankline's arithmetic) as opposed to, say,
my @prime=(1,2,grep $_%2, 2..100);
PS: from perldoc perlstyle:
Avoid using grep() (or map()) or `backticks` in a void context, that is, when you just throw away their return values. Those functions all have return values, so use them. Otherwise use a foreach() loop or the system() function instead.