sub str2val { my ($str) = @_; my %convert = (A => 1, B => 6, C => 31, D => 156, E => 781, F => 3906); my $val = 0; for my $char (split //, $str) { $val += $convert{$char}; } return $val; } sub val2str { my ($val) = @_; my %convert = (A => 1, B => 6, C => 31, D => 156, E => 781, F => 3906); my $str = ''; return $str if $val < 1; for my $char (sort {$convert{$b} <=> $convert{$a}} keys %convert) { my $count = int($val / $convert{$char}); $str .= ($char x $count); $val %= $convert{$char}; } return $str; }