Perl使获得一些符号变得非常方便.
$ perl -CO -E 'say "\N{FAMILY}"'
Run Code Online (Sandbox Code Playgroud)
有没有办法"\N{}"通过插值来评估符号?类似的东西:
perl -CO -E 'my $what = "FAMILY"; say "\N{$what}"'
Run Code Online (Sandbox Code Playgroud)
(这不起作用,但给你的味道).
除可行性外,这种评估还有任何缺点或可能的威胁吗?例如,说$what字符串是用户定义的,我永远不会eval $what.我会\N{$what}安全吗?
得到答案后,我注意到这些信息是如何明确说明的perlunicook.抱歉缺少RTFM.我想无论如何这对stackoverflow来说是件好事.
cho*_*oba 10
使用charnames中的vianame函数:
perl -CO -Mcharnames=:full -wE 'say chr charnames::vianame("PILE OF POO")'
Run Code Online (Sandbox Code Playgroud)
use charnames ();
my $what = "FAMILY";
say charnames::string_vianame($what);
Run Code Online (Sandbox Code Playgroud)