use bigint; my @digits=map chr,(0x30..0x39,0x41..0x5d); my $base = 22; my $n = 123456789123456; my $h; while($n > 0){ $h .= $digits[ $n % $base ]; $n /= $base; } print scalar reverse $h';