Perl可以很方便地获得一些符号。
$ perl -CO -E 'say "\N{FAMILY}"'
有没有办法通过插值用"\N{}"
来评估符号?类似于:
perl -CO -E 'my $what = "FAMILY"; say "\N{$what}"'
(这不起作用,但给你的味道)。
除了可行性之外,这种评估还有任何缺点或可能的威胁吗?例如。假设$what
字符串是用户定义的,我永远不会eval $what
。我会\N{$what}
安全吗?
在得到答案后,我注意到perlunicook
中如何清楚地说明这些信息。抱歉缺少RTFM。我想无论如何这对stackoverflow来说都是件好事。
答案 0 :(得分:10)
使用charnames中的vianame
功能:
perl -CO -Mcharnames=:full -wE 'say chr charnames::vianame("PILE OF POO")'
答案 1 :(得分:4)
use charnames ();
my $what = "FAMILY";
say charnames::string_vianame($what);