Perl 6 从字符串生成代码

Perl 6 make code from string

有没有办法将 string 变量插入到 code 中? 这就是我想要做的,当然它甚至不会编译。

my $cmd = " + 5 ";
my $a = 3;

$a = $a { $cmd };
say $a;

您可以尝试使用 EVAL,但请注意,如果您不能完全控制将要计算的字符串,则使用 EVAL 是危险的(例如考虑 EVAL 'shell "rm -rf *"'):

use MONKEY-SEE-NO-EVAL;
my $cmd = " + 5 ";
my $a = 3;
$a = EVAL( EVAL '$a ~ $cmd' ); 
say $a;

输出:

8

:

$a = EVAL( EVAL '$a ~ $cmd' ) 将连接运算符合并到要评估的字符串中。如果这不是必需的,您可以将其简化为 $a = EVAL( $a ~ $cmd )(如@W4anD0eR96 所建议)