如果这太微不足道,请原谅我。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