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);