我想评估一个环境变量并将结果设置为一个变量:
$x=eval($ENV{EDITOR});
print $x;
Run Code Online (Sandbox Code Playgroud)
输出:
/bin/vi
Run Code Online (Sandbox Code Playgroud)
工作良好.
如果我将环境变量QUOTE设置为\'并尝试相同的事情:
$x=eval($ENV{QUOTE});
print $x;
Run Code Online (Sandbox Code Playgroud)
输出:
(没有)
$@ set to: "Can't find a string terminator anywhere before ..."
Run Code Online (Sandbox Code Playgroud)
我不希望简单地设置$x=$ENV{QUOTE};为eval也用于调用脚本并返回其最后一个值(非常方便),所以我想坚持使用eval(); 请注意,以这种方式评估的所有环境变量都是由我在不同的地方设置的,所以我不关心以这种方式恶意访问环境变量eval-ed.
建议?