my @val; $val[ ord($ch[$_]) ] = $_ for 0..$#ch; my $s = ... my $num = 0; my $m = 1; for (reverse split //, $s) { $num += $m * $val[ ord($_) ]; $m *= $base; } print $num;