我正在尝试将字母转换为字母表中各自的数字。我有一个我认为应该工作的哈希我只是不知道如何将它应用到我的字符串。
细绳:
my $string = "abc";
和我的哈希:
@hash{("a".."z")} = (1..26);
在这种情况下,我如何让我的字符串为 123?
一般解决方案:
my %lookup; @lookup{"a".."z"} = 1..26;
my $pat = '(?:'.( join '|', map quotemeta, keys %lookup ).')';
s/($pat)/$lookup{$1}/g;
假设键最多包含一个字符:
my %lookup; @lookup{"a".."z"} = 1..26;
my $class = '['.( join '', map quotemeta, keys %lookup ).']';
s/($class)/$lookup{$1}/g;
“硬编码”:
$string =~ s/([a-z])/ ord($1) - ord('a') + 1 /ge;