@Maurice: thanks for the instructions @Travis: > Got this output, Test1, Test2 is mine from the script. ... > IO error: reading header signature : at (eval 25) line 3 > extracted lib/auto/DBD/ODBC/ODBC.dll to > C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Travis\cache-Cencal\3d2b5e28.dll => 4
The interesting part is the "4" at the end. It's the return code of Archive::Zip::extractToFileHandle which is used to extract the DLL from the packed executable (which is also a zip file) into the cache file with the mangled name (PAR::Heavy didn't check the return previously). 0 means OK, 4 (=Archive::Zip::AZ_IO_ERROR) means "an IO error occurred". But which one? Sorry, I'll have to ask you to go through steps (1) to (7) from my previous post again with the following change to PAR/Heavy.pm (line ~164) if ($fh) { binmode($fh); my $rc = $member->extractToFileHandle($fh); printf STDERR "extracted %s to %s => %d\n", $member->fileName, $filename, $rc; print STDERR "error was $! ($^E)\n" unless $rc == 0; # <--- more diagnostics close $fh; chmod 0755, $filename; } You can skip (1) and (2) and instead modify your installed PAR/Heavy.pm directly. Another observation (might be irrelevant to problem at hand): it looks like your cache area is called C:\DOCUME~1\Travis\LOCALS~1\Temp\par-Travis\cache-Cencal The last part is a bit unusual, expected is something like cache-ce8e8907c5a3c22d60ba163427934b0262c3cf18 (40 hex bytes of an SHA1 checksum). Any reason for this? Cheers, Roderich