Infix to RPN

Score: 116.27 (pass)

#!perl -p
s/\s//g/s/(?

Score: 116.28 (pass)

#!perl -p
s/\s//g;s/(?

Score: 117.26 (pass)

#!perl -p
y/ 	//d;s/(?

Score: 120.27 (pass)

#!perl -p
y/ 	//d;s/(?

Score: 122.27 (pass)

#!perl -p
y/ 	//d;s/(?

Score: 137.31 (pass)

#!perl -p
y/ 	//d;s/(?

Score: 172.31 (pass)

#!perl -p
sub
p{push@o,$+}y/ 	//d;{s/(\(+)?(-?\d+)//;p$_.=$1;while(s/^\)//||/^
/){p
while
s/([^(
])$//;chop}if(s/.//){$_.=$&;p
while!/[+-][*\/]$/&&s/([^(
])(?=.$)//;redo}}$_="@o
"

Score: 177.37 (pass)

#!perl -p
sub
p{push@o,$+}y!-+/* 	!bBaA!d;{s/(\(+)?(b?\d+)//;p$_.=$1;while(s/^\)//||/^
/){p
while
s/(\w)$//;chop}if(s/.//){$x=$&;p
while
s/(a|$x)$//i;$_.=$x;redo}}$_="@o
";y!bBaA!-+/*!

Score: 182.29 (fail)

Way too slow. Test 45 (v7) has now taken 12 minutes of CPU time on the specified machine, and the really long tests are still to come.

#!perl -pl
s#\s##g;
s#(.*?)(^|[-+*/(])(-?\d+)#$1$2\n$3\n#g;
1while
s#\((\n.+\n)\)#$1#||
s#^([^)]*?)(.+)\n([*/])\n(.+)#$1$2 $4 $3#||
s#(.+)\n([-+])\n(.+)(?=\n|$)(?!\n[*/])#$1 $3 $2#;
s#\n##g

Score: 190.43 (fail)

Fails the first test: Input: 1 - - 2 Output: 1 - 2 -

#!perl -p
y/  //d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$&while
s#[^(
](?=[-+]$)##||s#[*/](?=[*/]$)##;redo}}$_="@o
"

Score: 191.45 (pass)

#!perl -p
y/ 	//d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$&while
s#[-+*/](?=[-+]$)##||s#[*/](?=[*/]$)##;redo}}$_="@o
"

Score: 195.42 (pass)

#!perl -p
y/ 	//d;my@o;{s/^(\(+)?(-?\d+)//;$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}if(s/^.//){$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#;redo}}$_="@o
"

Score: 197.43 (pass)

#!perl -p
y/ 	//d;my@o;while(s/^(\(+)?(-?\d+)//){$_.=$1;push@o,$2;while(s/^\)//||/^
/){push@o,$&while
s#[^(
]$##;chop}s/^.//||last;$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}$_="@o
"

Score: 214.46 (pass)

#!perl -p
y/ 	//d;my@o;while(s/^(\(+)?(-?\d+)//){$_.=$1;push@o,$2;while(s/^\)//){push@o,$&while
s#[^(
]$##;chop}s/^.?//||last;$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}push@o,$&while
s/.$//;$_="@o
"

Score: 226.53 (pass)

#!perl -p
y/ 	//d;my@o;while($.&&s/^-?\d+//||s/^.//){if($.=!($&=~y/0-9)//)){$_.=$&;push@o,$1while
s#([-+*/])([-+])$#$2#||s#([*/])([*/])$#$2#}elsif($&eq')'){push@o,$&while
s#[^(
]$##;chop}else{push@o,$&}}push@o,$&while s/.$//;$_="@o
"

Score: 438.24 (pass)

#!perl -lp
s/\s//g;
$o=0;
@s=@o=();
while (/\S/) {
	$o ? s/.// : s#-?\d+|\(##;
	$n = $&;
	if ($n eq '(') {
		push @s, $n;
		$o = 0;
	} elsif ($n eq ')') {
		while (($a=pop(@s)) ne '(') {
			push @o, $a;
		}
		$o = 1;
	} elsif ($n !~ m#\d#) {
		while (@s && $s[-1] ne '(' && ($s[-1] =~ m#[*/]# || $n =~ m#[-+]#)) {
			push @o, pop @s;
		}
		push @s, $n;
		$o = 0;
	} else {
		push @o, $n;
		$o = 1;
	}
}
while (@s) { push @o, pop @s; }
$_ = "@o";