sub fun {
# (explained : reduce the numbers to their base2 (binary)
# representation. we always care about the
# lowest four bits ($n & 0x1111 is $n & 15). If the ord of
# the number is in the A-Z range the 7th bit will be set
# ($n >> 6) will be true. In this case, also include the
# 6th bit in the number ($n & 31) instead of ($n & 15).
# Since A-Z starts at ten, add 9 as well)
# 1 2 3 4 5 6
#23456789012345678901234567890123456789012345678901234567890
$n=ord(pop);$a=($n>>6)?(($n&31)+9):($n&15);
# same thing, but obfu
# $n=ord(pop);$a=($n&(1<<(4+($n>>6)))-1)+($n>>6&&9);
}