Strtol

Score: 169.55 (pass)

Yes!!! (So tired...)

#!perl -lp
y/ /+/;for$=(qw/\+h b m tho lv|tee y z o tw th f1 f si s ei n t e E/){s/$=\w*/(qw(y.y E9 E6 E3 +t *t),0..11,"0)*1$&+(")[$;]/ge,$;++}$_=eval"($_)";s/\B(?=(...)+$)/,/g

Score: 172.52 (pass)

Famous last words... I luckily found a missing \n, but several hours of new breakthroughs got me nowhere. I really thought I had had an alien visitation...

#!perl -lp
y/ yz/+0/;for$=(qw/\+h b m tho lv|.?te l on w th fo f si s g n E./,""){s/$=[a-z]*/(qw(00 E9 E6 E3 +10),11,1..9,"0)*1$&+(")[$;]/ge,$;++}$_=eval"($_)";s/\B(?=(...)+$)/,/g

Score: 173.54 (pass)

Breakthrough! Back into 16th place. More coming soon...(I think)

#!perl -lp
y/ yz/+0/;for$i(qw/\+h b m tho lv|.?te l on w th fo f si s g n E./,""){s/$i[a-z]*/(qw(00 E9 E6 E3 +10),11,1..9,"0)*1$&+(")[$c]/ge,$c++}$_=eval"($_)";
s/\B(?=(...)+$)/,/g

Score: 175.53 (pass)

And closer...

#!perl -lp
y/ yz/+0/;for$i(qw/\+h b m tho lv|.?te l on w th fo f si s g n (.*?).(E.)/,""){s/$i[a-z]*/(qw(00 E9 E6 E3 +10),11,1..9,"+($1)*1$2")[$c]/ge,$c++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 178.52 (pass)

Starting to bridge the gap. New algorithm needed?

#!perl -lp
for$i(qw/\sh b m tho lv|.?te l y|z on w th fo f si s g n/,"(.*?) (E.)",$",""){s/$i[a-z]*/(qw(00 E9 E6 E3 +10),11,0..9,"+($1)*1$2","+")[$c]/ge,$c++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 180.51 (pass)

Those pesky top players keep getting further away!

65 isn't that much..

#!perl -lp
for$i(qw/\sh b m ho lv|.?te l y|z on w th fo f si s g n/,"","(.*?) (E.)",$"){s/$i[a-z]*/(qw(00 E9 E6 E3 +10),11,0..9,"","+($1)*1$2","+")[$c]/ge,$c++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 183.52 (pass)

.02 points! (Couldn't resist.)

#!perl -lp
for$=(qw/hu b m ho (\w{3,})[tv]e y|z on|le w th fo f x v g ni te/,"",'00 (\d\d)','0 (\d)',$"){s/$=[a-z]*/(qw(00 E9+0 E6+0 E3+0),1,0..10)[$;].$1/ge,$;++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 183.54 (pass)

At this rate, I should catch up to the next player in only five days...

#!perl -lp
for$i(qw/hu b m ho (\w{3,})[tv]e y|z on|le w th fo f x v g ni te/,"",'00 (\d\d)','0 (\d)',$"){s/$i[a-z]*/(qw(00 E9+0 E6+0 E3+0),1,0..10)[$c].$1/ge,$c++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 184.57 (pass)

The squeezing continues...

#!perl -lp
for$i(qw{hu b m ho (\w+)te wel y|z on w th fo f si s g ni te v},"",'00 (\d\d)','0 (\d)',$"){s/$i[a-z]*/(qw(00 E9+0 E6+0 E3+0),1,12,0..11)[$c].$1/ge,$c++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 185.53 (pass)

I saved a whole stroke and it doesn't even bump me up in the leaderboard?!

Now look, if everyone would gain a position for every removed stroke, where would Ton be now?

#!perl -lp
for$=(qw{hu b m ho (\w*)te wel l y|z on w th fo f x v g n},"",'00 (\d\d)','0 (\d)',$"){s/$=[a-z]*/(qw(00 E9+0 E6+0 E3+0),"10 ",12,11,0..9)[$;].$1/ge,$;++}$_=eval;s/\B(?=(...)+$)/,/g

Score: 186.54 (pass)

The good news is: Woo-hoo! The bad news: I think this algorithm's on its last legs. Still, as usual, it went a lot farther than I expected.

#!perl -lp
for$i(qw{hu b m ho (\w*)te wel l y|z on w th fo f x v g n},"",'00 (\d\d)','0 (\d)',$"){s/$i[a-z]*/(qw(00 E9+0 E6+0 E3+0),"10 ",12,11,0..9)[$c].$1/ge,$c++}$_=eval;s/.(?=(...)+$)/$&,/g

Score: 191.54 (pass)

Wow, exactly tied with Arne. Not for for long!

#!perl -lp
@o=(qw(00 E9+0 E6+0 E3+0),"10 ",12,11,0..9);for$i(qw{hu b m ho (\w*)te wel l y|z on w th fo f x v g n},"",'00 (\d\d)','0 (\d)',$"){s/$i[a-z]*/$o[$c]$1/g,$c++}$_=eval;s/\d(?=(...)+$)/$&,/g

Score: 195.53 (pass)

Squeeeeeeze - and we're under 200! I knew I'd eventually be able to get rid of a few of the letters, but it's amazing how few bits can describe the numbers 1..10!

#!perl -lp
@o=(qw(00 E9+0 E6+0 E3+0),"10 ",12,11,0..9);for$i(" h",qw{b m ho (\w*)te wel l y|z on w th fo f x v g n},a..z,'00 (\d\d)','0 (\d)',$"){s/$i[a-z]*/$o[$c]$1/g,$c++}$_=eval;s/\d(?=(...)+$)/$&,/g

Score: 210.55 (pass)

Take that Yanick! Pretty amazing what a change of algorithm can do for you. I avoided commifying until I found a 20 rather than 31-character solution.

#!perl -lp
@i=(" h",qw{b m tho (\w+)te twel z|ty on tw th fo f si s ei ni t el},'00 (\d\d)','0 (\d)',$");@o=(qw(00 E9+0 E6+0 E3+0),"10 ",12,0..11);for$c(0..20){s/($i[$c])[a-z]*/$o[$c]$2/g}$_=eval;s/\d(?=(...)+$)/$&,/g

Score: 224.56 (pass)

Oh no! Yanick's coming!

#!perl -lp
$r=$_;
$r=~s/$_[a-z]*/$a<2?0+$a."ty $1":$a-2/ge,$a++
for" h",qw((\w+)te ty one two|twen th[ir] fo f si se ei ni te ele tw);
$_=join",",map{ 
sprintf"%03d",$r=~s/.*$_//i&&eval join"+",$&=~/\d+/g
}b,M,t,"";
s/^[0,]*(.)/$1/

Score: 225.56 (pass)

The sand trap?! I'm offended! Anyway, this new score is a better first score than my usual. (Sorry I don't have time for the use strict -w version this time!) Too bad I'm not sure how much better it's going to get!

#!perl -lp
$r=$_;
$r=~s/$_[a-z]*/$a<2?0+$a."ty $1":$a-2/ge,$a++
for" h",qw((\\w+)te ty one two|twen th[ir] fo f si se ei ni te ele tw);
$_=join",",map{ 
sprintf"%03d",$r=~s/.*$_//i&&eval join"+",$&=~/\d+/g
}b,M,t,"";
s/^[0,]*(.)/$1/

Score: 244.56 (fail)

I know I'm going to regret entering this contest. My eyeballs hurt already!

'Can't find unicode character property definition via main->l or l.pl at unicode/Is/l.pl line 0' - some sort of unescaped character problem in a regex, we think, Amir.

#!perl -lp
@i=(" h",qw((\\w+)te ty one two|twen th[ir] fo f si se ei ni te ele tw 00),
"1ty ",0..12);
for$c(0..14){s/$i[$c]\pl*/$i[$c+15]$1/g}
$r=$_;
$_=join",",map{ 
sprintf"%03d",$r=~s/.*$_\w* ?//i&&eval join"+",$&=~/\d+/g
}b,M,t,"";
s/^[0,]*(.)/$1/