按名称获取Unicode代码点(“字符”)

4
Perl非常方便获取一些符号。
$ perl -CO -E 'say "\N{FAMILY}"'

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

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

(这种方法不起作用,但可以让您了解其特点)。

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

哎呀...

在得到答案后,我注意到这些信息在perlunicook中已经清楚地说明了。对于没有阅读官方文档的情况,非常抱歉。无论如何,我认为这是stackoverflow上很好的一个问题。

2个回答

10

使用charnames模块中的vianame函数:

perl -CO -Mcharnames=:full -wE 'say chr charnames::vianame("PILE OF POO")'


5
有趣的例子选择。 - simbabque
1
这个人让我开心了 - Dacav
这个例子值得一试。 - Sobrique

5
use charnames ();
my $what = "FAMILY";
say charnames::string_vianame($what);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接