ok,
i'm not even a contender for this one, but in the spirit of TMTOWTDI i submit the following 2:
# 1 (57 characters)
$a+=($_-($_|0?0:55))*36**$b++while$_=chop$ARGV[0];print$a
# 2 (63 characters)
print[map$a+=($_-($_|0?0:55))*36**$b++,reverse pop=~/./g]->[-1]
jynx
update: bad jynx! bad, evil, naughty jynx! not testing thoroughly! not golfing thoroughly! *sigh* neither of the above work correctly, i'm currently working on fixing them. *sigh* sorry 'bout that.
update2:
here's both of them: # 1 (still 57 characters, with props to petral for the idea)
$a+=(-55+/\d/*7+ord)*36**$b++while$_=chop$ARGV[0];print$a
# 2 (now 64 characters, with props to blakem for the idea)
print[map$a+=(/\d/?$_:-55+ord)*36**$b++,reverse pop=~/./g]->[-1]
|