in reply to Re: problem with Archive::Zip
in thread problem with Archive::Zip

This problem also wasted a day of my time, because I am a very occasional user of perl. I hope to save someone else the trouble.

This line failed on Win32 with the error quoted above:

$zip->addFile("$workPath\\shared\\base.dll", "$packageName/base.dll") or die "$! add file failed \n";

The actual problem was the $workPath was wrong, making base.dll unavailable, but the 'or die' which I added to debug, didn't catch the missing file error. Frankly, once I followed the exact suggestion to use -e -r -f to check the filespec, the root cause was instantly revealed. The following revealed the error:

 if (( -f $$workPath\\shared\\base.dll) && ( -r $workPath\\shared\\base.dll)) { print "good\n";}else{ die " blah blah blah\n";}