in reply to
(Golf): Sieve of Eratosthenes
Here is one of 68 characters in length:
sub p{my@x;map{my$c=$_;$_%$c||++$x[$_]for@_}@_=2..pop;grep$x[$_]==1,0.
+.$#x}
UPDATE: And another of
65:
sub p{@_=2..pop;my$c;while($_[$c]){@_=($_[$c],grep$_%$_[$c],@_);$c++}@
+_}
UPDATE: And another of
60:
sub p{@_=2..pop;my$c;@_=($_[$c++],grep$_%$_[$c-1],@_)while$c<@_;@_}
UPDATE: And another of
40 (but I fear it strays from the rules...):
sub p{grep{my$c=$_;$#_==grep$c%$_,@_}@_=2..pop}
japhy --
Perl and Regex Hacker