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); }