按名称获取 Unicode 码位 ( "character" )



Perl使获取一些符号变得非常方便。

$ perl -CO -E 'say "N{FAMILY}"'
👪

有没有一种方法可以通过插值用"N{}"来评估符号?类似于:

perl -CO -E 'my $what = "FAMILY"; say "N{$what}"'

(这不起作用,但会给你带来味道)。

除了可行性之外,这种评估是否存在任何缺点或可能的威胁?例如说$what字符串是用户定义的,我永远不会eval $what。我能安全地N{$what}吗?

操作

在得到答案后,我注意到perlunicook中清楚地说明了这些信息。很抱歉缺少RTF。不管怎样,我想这对斯塔克沃夫来说是件好事。

使用charnames:中的vianame函数

perl -CO -Mcharnames=:full -wE 'say chr charnames::vianame("PILE OF POO")'
💩
use charnames ();
my $what = "FAMILY";
say charnames::string_vianame($what);

最新更新