http://qs321.pair.com?node_id=143118


in reply to The Perl Review

Hey ! I just read the (GREAT) magazine, here's my proposition :

perl -F// -ane'print+(map{($r*=36)+=/\d/?$_:-55+ord$_}@F)[-2]'

it's a filter so call it as usual through a pipe :
echo 1Z|perl -F// -ane'print+(map{($r*=36)+=/\d/?$_:-55+ord$_}@F)[-2]'

UPDATE :
Congratulations to all of you.
After reading your solutions, I found several neat tricks to enhance mine
(Epecially thanks to blakem and tilly's post) .
'ord' should definitly replace 'ord$_'...
For some (yet unknown) reasons I can't replace ($r*=36)+=... by $r=$r*36+...
(I'll work on it tomorrow, I REALLY need to sleep ;-)
Last :
perl -F// -ane'print+(map{($r*=36)+=/\d/?$_:-55+ord}@F)[-2]'


"Only Bad Coders Code Badly In Perl" (OBC2BIP)