Strtol

Score: 130.50 (pass)

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+($+)*1E0$/
%gi,--$/while
b__m__THoHuyzOnwThFofSisEiiqv=~/[(-^]*./g;$_-=eval;s/.(?=(...)+$)/$&,/g

Score: 131.50 (pass)

As usual, submitting a minor improvement immediately leads to discovery of another improvement just minutes later.

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+(
$+)*1E0$/
%gi,--$/while
b__m__THoHuyzOnwThFofSisEiiqv=~/[(-^]*./g;$_-=eval;s/.(?=(...)+$)/$&,/g

Score: 132.43 (pass)

Remove unneccessary characters from the data-string. (Doh.)

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+(
$+)*1E0$/
%gi,--$/while"b!!m!!.HoHuyzOnwTh+of+xs+giqv"=~/[(-^]*./g;$_-=eval;s/.(?=(...)+$)/$&,/g

Score: 134.43 (pass)

Two days of beating my head against a brick wall produces an improvement of 1.01 strokes.

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+(
$+)*1E0$/
%gi,--$/while"b!!m!!.HoHuyzOn+wTh+rf+xs+g+iqv"=~/[(-^]*./g;$_-=eval;s/.(?=(...)+$)/$&,/g

Score: 135.44 (pass)

Finally pass Stephen.

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+(
$+)*1E0$/
%gi,--$/while"b!!m!!THoHuyzOn+wTh+rf+xs+g+iqv"=~/[(-^]*./g;$_=0-eval;s/.(?=(...)+$)/$&,/g

Score: 139.45 (pass)

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$&\w*%+(
$+)*1E0$/
%gi,--$/while
"b!!m!!THoHuyzOn+wTh+rf+xs+g+iq+v"=~/[(-^]*./g;$_=abs
eval;s/.(?=(...)+$)/$&,/g

Score: 142.51 (pass)

This is undoubtedly the most perverse piece of code I've ever written. Too bad that it's nowhere near enough in this sort of competition... :-(

#!perl -lp071
s/te|lv/ q/g;s%(.*?)$@t?$&\w*%+(
$1)*1E0$/
%g,--$/or$@='.*'while
b__m__hohuyzonwthrfxsgiqv=~/[hot]?./g;$_=abs eval;s/.(?=(...)+$)/$&,/g

Score: 144.48 (pass)

Use $/ as counter instead of $=, and initialize it using -0.

#!perl -lp071
s/te|lv/ q/g;s%(.*?)t?$&\w*%+($1)*1E$/
%g||s%\w*$&\w*%$/%gi,--$/while
b__m__hohuyZONWTHRFXSGIQV=~/[hOT]?./g;$_=-eval;s/.(?=(...)+$)/$&,/g

Score: 147.46 (pass)

I'm starting to suspect the vitality of this horse.

#!perl -pl
$=/=6;s/te|lv/ q/g;--$=>0?s/(.*?)t?$&\w*/+($1)*1E$=
/g:s%\w*$&\w*%$=%gwhile
b__m__hohuyzonwthrfxsgiqv=~/[hot]?./g;$_=-eval;s/.(?=(...)+$)/$&,/g

Score: 149.46 (pass)

Better handling of 12-19.

#!perl -pl
$=/=6;s/te|lv/ t/g;--$=>0?s/(.*?)t?$&\w*/+($1)*1E$=
/g:s%\w*$&\w*%-+$=%giwhile
b__m__hohuyzOnwThrfxsgitv=~/[hOT]?./g;$_=eval;s/.(?=(...)+$)/$&,/g

Score: 152.43 (pass)

#!perl -pl
$=/=6;s/e.n|lv./+$=/g;--$=>0?s/(.*?)t?$&\w*/+($1)*1E$=
/g:s%\w*$&\w*%-+$=%giwhile
b__m__hohuyzOnwThrfxsgitv=~/[hOT]?./g;$_=eval;s/.(?=(...)+$)/$&,/g

Score: 155.45 (pass)

Integrate all of the operations into the main loop. When $= > 0, transform words into multiplications. After that, transform them into numbers. Finally, let perl evaluate the result.

#!perl -pl
$=/=6;s/een|lve/+10/g;for$a(b__m__HoHuyzOnwThrfxshitv=~/[A-Z]?./g){--$=>0?s/(\D*?)t?$a\w*/+($1)*1E$=/gi:s%\w*$a\w*%-+$=%gi}$_=eval;s/.(?=(...)+$)/$&,/g

Score: 167.50 (fail)

#!perl -pli9
for$a(b,X,X,m=>X,X,tho,hu,ty){s/(.*?)$a\S*/+($1)*1E$^I
/g;$^I--}s/een|lve/+10/g;s%(\pL.)\w+%+(index"zeontwthfofisiseeiniteel",$1)/2%g;$_=eval;s/.(?=(...)+$)/$&,/

Score: 168.51 (pass)

A 'g' was missing from the end of the last submission

Second place now; just 30 strokes behind Mtv.

#!perl -pli9
for$a(b,X,X,m=>X,X,tho,hu,ty){s/(.*?)$a\S*/+($1)*1E$^I
/g;$^I--}s/een|lve/+10/g;s%(\pL.)\w+%+(index"zeontwthfofisiseeiniteel",$1)/2%g;$_=eval;s/.(?=(...)+$)/$&,/g

Score: 175.51 (pass)

Do substitutions on the input, transforming it into a perl expression, eval the expression for the result, and group the result by thousands.

#!perl -pl
$b=9;for$a(b,m=>tho,hu){s/(.*?)$a\S*/+($1)*1E$b
/g;$b-=3or$b=2}s/y/*10/g;s/een|lve/+10/g;s%(\pL.)\w+%+(index"zeontwthfofisiseeiniteel",$1)/2%g;$_=eval;s/.(?=(...)+$)/$&,/g