我正在將一個perl腳本轉換爲python,然後我發現這個函數我無法理解。perl eval with back quote
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」。有人可以幫我嗎?
注意,eval用於`(back quote)。
嘗試首先***打印***語句,而不是(或除了)評估它,即'print'XYZ_ARG0 ='$ 0'NZENV_OUTPUT =' - a -p xyz'xyz $ _「 ,「\ n」;'。所以你可以看到實際執行的內容。 'eval'然後以Perl代碼的形式執行該命令的輸出。 – PerlDuck
請注意,您必須信任運行的命令;從某些角度來看,這是非常危險的。 –