我想從Perl腳本運行pdflatex作爲系統調用。 就像在Using system()中說的那樣,應該執行一個外部程序,使用system("command", "arg1", "arg2", "arg3");
來直接運行它並避免打開一個子shell。當我與級聯的一般行爲
system("pdflatex", "LaTexFile", ">& stdout.txt") == 0 or die "pdflatex failed with exit code $?";
這樣做的輸出不寫入stdout.txt
代替它被打印到終端(STDOUT)。所以我試了
system("pdflatex " . "LaTexFile " . ">& stdout.txt") == 0 or die "pdflatex failed with exit code $?";
哪個有效。
How to concatenate strings with Perl概述瞭如何在Perl中連接。但它並沒有說明這些方法有什麼不同。當我定義的東西,我通常做它像my $var = "name_$othervar";
,所以我甚至不使用大括號。
任何解釋讚賞。
'「>&stdout.txt」'不是您的命令(pdflatex)的參數。它由執行環境/ shell解釋。 pdflatex不能使用它。 – marderh
第一次調用'system'不是字符串連接的例子,而是一個參數列表。 – ThisSuitIsBlackNot