perl中的ord
函数返回字符的数值。可以在列表上下文中调用该函数吗?具体来说,我想将字符串分解为其数字字符值(例如,ABC
- > 65, 66, 67
)。但是,以下命令未提供预期结果:ord(split(//,$STRING))
。我可以使用循环结构,如下所示:
my @NUMERIC=();
for(my $i=0;$i<@STRING;$i++) {
$NUMERIC[$i] = ord($STRING[$i]);
}
但我希望找到一个单行解决方案,如果可能的话,会从函数中生成列表输出。
答案 0 :(得分:5)
使用ord
可以确定只有一个字符的字符代码。要从字符串中获取代码列表,您可以同时使用split
和map
。喜欢这个
my $s = 'STRING';
my @codes = map ord, split //, $s;
print "@codes\n";
<强>输出强>
83 84 82 73 78 71
答案 1 :(得分:1)
它不会在列表上运行,抱歉。
试试这个:
my $string = 'ABC';
my @numbers;
push @numbers, ord $_ for split '', $string;