Cantor

Score: 44.15 (pass)

#!perl -l
$.='-';$..=$".$.,$"x=3for(1..pop);print$.

Score: 46.20 (pass)

#!perl -l
$_='-';$_.=$".$_,$"x=3while$ARGV[0]--;print

Score: 47.15 (pass)

I'm pretty pleased with the abuse of $".

#!perl
$_='-
';s/.*/$&$"$&/,$"x=3while$ARGV[0]--;print

Score: 47.21 (pass)

#!perl -l
$_='-';$o=pop;$_.=$".$_,$"x=3while$o--;print

Score: 144.20 (pass)

Silly. An idea I had which didn't pan out.

#!perl
use Math::BigInt;
$d=new Math::BigInt 2;
$b=new Math::BigInt 3;
$d*=4**($b**$i++)+1while$i<$ARGV[0];
print($d%2?'-':' ')while($d/=2);
print "\n"