我正在将perl脚本转换为python,然后我找到了这个我无法理解的功能。
sub set_xyz_hash {
%xyz = ();
$_ = join(' ', map { my $a = $_; $a =~ s/\'/\'\"\'\"\'/g; "'$a'" } @ARGV);
eval `XYZ_ARG0='$0' NZENV_OUTPUT='-a -p xyz' xyz $_`;
}
因为我对perl的了解非常有限,所以我无法理解此函数中使用的' 。有人可以帮我吗?
注意,eval与`(后引号)一起使用。
答案 0 :(得分:1)
反引号运行外部命令并返回输出:
my $result = `ls -l`;
print $result;
您的eval
行的处理方式完全相同:
my $result = `XYZ_ARG0='$0' NZENV_OUTPUT='-a -p xyz' xyz $_`;
eval $result;
它基本上是从被调用脚本的输出中获取一些Perl源并运行它。