Strtol

Score: 310.46 (pass)

OK, now I'm starting to move up the board a bit!

#!perl -apl
%n=(6,3,34,6,79,9);map{$x*=100if/^h/;$s=$j=248;map{$s^=++$j*ord}split//;$s%=90;for($q=20;$q*((map{-32+ord}split//,"`+5EHa!8\"*?#Tn32(Ck]")[$q-1]ne$s);$q--){};$q=$q||{5,30,49,40,87,50,0,60,30,70,42,80,38,90}->{$s};$x+=$q if$q;$y+=$x*10**$n{$s},$x=0if$n{$s}}@F;$_=$y+$x;while(s/([^,])(...)(,|$)/$1,$2$3/g){}

Score: 328.47 (pass)

#!perl -apl
@m=(64,11,21,37,40,65,1,24,2,10,31,3,52,78,19,18,8,35,75,61);%n=(6,3,34,6,79,9);map{$x*=100if/^h/;$s=$j=248;map{$s^=++$j*ord}split//;$s%=90;for($q=@m;$q*($m[$q-1]ne$s);$q--){};$q=$q||{5,30,49,40,87,50,0,60,30,70,42,80,38,90}->{$s};$x+=$q if$q;$y+=$x*10**$n{$s},$x=0if$n{$s}}@F;$_=$y+$x;while(s/([^,])(...)(,|$)/$1,$2$3/g){}

Score: 336.47 (pass)

Step by step, asymptotically approaching mediocrity.

#!perl -apl
@m=(64,11,21,37,40,65,1,24,2,10,31,3,52,78,19,18,8,35,75,61);%n=(6,3,34,6,79,9);map{$s=$j=248;map{$s^=++$j*ord}split//;$s%=90;for($q=@m;$q*($m[$q-1]ne$s);$q--){};$q=$q||{5,30,49,40,87,50,0,60,30,70,42,80,38,90}->{$s};if($q){$x+=$q}else{$x*=100if/^h/;$y+=$x*10**$n{$s},$x=0if$n{$s}}}@F;$_=$y+$x;while(s/([^,])(...)(,|$)/$1,$2$3/g){}

Score: 345.51 (pass)

I still suck, just a tiny bit less.

#!perl -apl
%m=(4,1,53,2,89,3,30,4,68,5,80,6,92,7,31,8,78,9,56,10,36,11,63,12,46,13,9,14,25,15,74,16,91,17,40,18,2,19,3,20,39,30,15,40,81,50,26,60,79,70,37,80,86,90);%n=(33,3,6,6,88,9);map{$s=$j=84;map{$s^=++$j*ord}split//;$s%=95;if($m{$s}){$x+=$m{$s}}else{$x*=100if/^h/;$y+=$x*10**$n{$s},$x=0if$n{$s}}}@F;$_=$y+$x;while(s/([^,])(...)(,|$)/$1,$2$3/g){}

Score: 391.56 (pass)

I started late, I should try printf %v.

#!perl -apl
%m=(90,0,412,1,471,2,415,3,47,4,66,5,457,6,617,7,614,8,98,9,500,10,807,11,21,12,510,13,390,14,243,15,188,16,740,17,395,18,459,19,159,20,197,30,611,40,523,50,580,60,926,70,176,80,240,90);%n=(102,3,990,6,977,9);map{$a=$s=$j=0;map{$s^=++$j*ord}split//;$x+=$m{$s},$a=1if$m{$s};$x*=100,$a=1 if$_=~/^h/;$y+=$x*10**$n{$s},$x=0 if!$a&&$n{$s}}@F;$y+=$x;$_=reverse$y;s/.../$&,/g;$_=reverse;s/^,//