列表上下文中的perl ord函数

use*_*001 0 perl

ordperl中的函数返回字符的数值.可以在列表上下文中调用该函数吗?具体来说,我想将字符串分解为其数字字符值(例如,ABC- > 65, 66, 67).但是,以下命令未给出预期结果:ord(split(//,$STRING)).我可以使用循环结构,如下所示:

my @NUMERIC=();
for(my $i=0;$i<@STRING;$i++) {
  $NUMERIC[$i] = ord($STRING[$i]);
}
Run Code Online (Sandbox Code Playgroud)

但我想找到一个单线解决方案,如果可能的话,从函数产生列表输出.

Bor*_*din 5

使用ord您可以确定只有一个字符的字符代码.为了从您可以使用一个字符串获取代码列表splitmap在一起.像这样

my $s = 'STRING';
my @codes = map ord, split //, $s;
print "@codes\n";
Run Code Online (Sandbox Code Playgroud)

产量

83 84 82 73 78 71
Run Code Online (Sandbox Code Playgroud)