Это на самом деле MS-DOS?
Вы сказали, что это не сработало, но не то, что на самом деле произошло. Вы получили ошибку? Что это было?
Если это в системе Unixish, просто подставьте одинарные кавычки:
system("java -Xms256m -Xmx512m -jar $saxonJar -o $tmpFile '$inFile' $xslFile $saxonParams");
Я не знаю, будет ли это работать в MS-DOS или нет.
Если имя файла содержит "
или '
, оно становится немного более сложным, поскольку его необходимо сохранить на уровне оболочки:
$inFile =~ s/(['"])/\\$1/g;
system("java -Xms256m -Xmx512m -jar $saxonJar -o $tmpFile \"$inFile\" $xslFile $saxonParams");
(или что-то подобное.)
Еще лучше, используйте форму с несколькими аргументами:
system('java', '-Xms256m', '-Xmx512m', '-jar', $saxonJar, '-o', $tmpFile,
$inFile, $xslFile, $saxonParams);
и пусть интерпретатор и оболочка выяснят это.