如果這太微不足道,請原諒我。Perl逃逸行情問題
我通過調用Perl腳本系統()這樣做的XSLT:
system("java -Xms256m -Xmx512m -jar $saxonJar -o $tmpFile $inFile $xslFile $saxonParams");
$ INFILE是包含對要使用XSLT轉換XML文件的相對路徑的字符串。這工作得很好,除了那些在字符串中有空格的$ inFile,例如像「Intro to Dance.htm」,那麼它會報告語法錯誤。
如果這是在MS-DOS中,那麼我可以輕鬆地通過在XSLT命令中引用$ inFile字符串來引用此問題。我曾嘗試在上面的命令中使用escape:
system("java -Xms256m -Xmx512m -jar $saxonJar -o $tmpFile \"$inFile\" $xslFile $saxonParams");
它不起作用。任何人都可以幫助我如何在$ inFile周圍加引號?
謝謝。
@friedo:試過了,但出現如下錯誤:字符串找到了./mot_publish.pl第121行,'java''-Xms256m''' (在'-Xms256m'之前缺少操作符?你有什麼建議嗎? – Kevin 2011-03-15 18:04:30
您需要列表中每個項目之間的逗號。 – friedo 2011-03-15 18:05:49
@Robert:friedo的代碼看起來正確。你確定你已經正確複製了嗎?要麼你在複製時犯了錯誤,要麼錯誤是在報告行上面的一行或兩行(這是解析類似錯誤的一般問題)。編輯:friedo的已經發現的問題。 – 2011-03-15 18:07:01