Я пытаюсь преобразовать html-файлы в epub с помощью EBook :: Epub.Сценарий, который я написал, очень прост, например:
my $epub = EBook::EPUB->new;
$epub->add_title('title');
$epub->add_author('author');
$epub->add_language('en');
$epub->copy_xhtml("d:/path/to/file.html" , "file.html");
$epub->pack_zip("d:/path/to/file.epub");
Когда я запускаю его из командной строки, он прекрасно работает.Тем не менее, я пытаюсь развернуть его как сценарий CGI на сервере IIS6 - который запускается с компьютера того же - не получается с этим сообщением:
Can't call method "desiredCompressionLevel" on an undefined value at C:/strawberry/perl/vendor/lib/Archive/Zip/Archive.pm line 252.
Я проверилout Archive.pm, а строка 252 находится в sub addFile.Он использует три переменные - $ fileName, $ newName, $ compressLevel - и я использовал некоторые операторы print, чтобы показать их значения прямо перед строкой 252. ($ressionLevel всегда пусто)
Это из командыстрока, которая работает:
filename: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\7QiqzzNiN5/OPS/file.html
newname: OPS/Advanced8247.html
filename: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\7QiqzzNiN5/OPS/content.opf
newname: OPS/content.opf
filename: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\7QiqzzNiN5/OPS/toc.ncx
newname: OPS/toc.ncx
filename: C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\DkgiQN_pTq
newname: META-INF/container.xml
Это с сервера, который бомбит:
filename: C:\WINDOWS\TEMP\8rxbvOVkKy/OPS/file.html
newname: OPS/Advanced6575.html
filename: C:\WINDOWS\TEMP\8rxbvOVkKy/OPS/content.opf
newname: OPS/content.opf
filename: C:\WINDOWS\TEMP\8rxbvOVkKy/OPS/toc.ncx
newname: OPS/toc.ncx
filename: C:\WINDOWS\TEMP\WqS7fskWi0
newname: META-INF/container.xml
Так что я предполагаю, что моя проблема связана с тем, где находятся временные файлынаписано, но я действительно не знаю достаточно о серверах и Archive :: Zip, чтобы понять это.Есть идеи?