将我的哈希值应用于字符串以从字母中获取数字

Blu*_*eni 2 perl hash

我正在尝试将字母转换为字母表中各自的数字.我有一个哈希,我认为应该工作我只是不知道如何将它应用于我的字符串.

串:

my $string = "abc";
Run Code Online (Sandbox Code Playgroud)

和我的哈希:

@hash{("a".."z")} = (1..26); 
Run Code Online (Sandbox Code Playgroud)

在这种情况下,如何让我的字符串为123?

too*_*lic 5

代换

use warnings;
use strict;

my $string = "abc";
my %hash;
@hash{("a".."z")} = (1..26); 
$string =~ s/(.)/$hash{$1}/g;
print "$string\n";

__END__

123
Run Code Online (Sandbox Code Playgroud)

更新:另一种没有哈希的方法是使用ord

my $string = "abc";
$string =~ s/(.)/ord($1) - 96/ge;
print "$string\n";
Run Code Online (Sandbox Code Playgroud)