Perl 6从字符串生成代码

问题描述 投票:1回答:1

是否有一种方法可以将string变量插值到code?这就是我想要做的,当然它甚至不会编译。

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

$a = $a { $cmd };
say $a;
perl6 raku
1个回答
3
投票

[您可以尝试使用EVAL,但是请注意,如果您无法完全控制要评估的字符串(例如,考虑使用EVAL这样的东西,则使用EVAL是危险的:]

EVAL 'shell "rm -rf *"'

输出

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

注意

[C0行]将串联运算符合并到要评估的字符串中。如果不需要这样做,可以将其简化为8 (如@ W4anD0eR96所建议)

© www.soinside.com 2019 - 2024. All rights reserved.