# 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]