Hi,
the following program 

use Storable;
print "hello, world\n";

has problems when packed with

$ pp -n -c -o hello.exe hello.pl

Running hello.exe gets:

mkdir
C:\DOCUME~1\qx06959\LOCALS~1\Temp\par-qx06959\cache-e44c2953061488246fa9
ee
5f9c4cd5172ce53917\inc\lib\C:\: Invalid argument at
C:/local-programs/Perl/site/
lib/Archive/Zip.pm line 1761

Listing hello.exe with unzip -l shows a strange member:

Archive:  hello.exe
 Length    Date    Time    Name
 ------    ----    ----    ----
      0  06-07-04  16:48   lib/
      0  06-07-04  16:48   script/
     15  06-07-04  16:48   MANIFEST
     15  06-07-04  16:48   META.yml
   5154  06-07-04  16:48   lib/AutoLoader.pm
    548  06-07-04  16:48
lib/C:/local-programs/Perl/lib/auto/Storable/autosplit.ix  <=====
   3734  06-07-04  16:48   lib/Carp.pm
  31212  06-07-04  16:48   lib/Config.pm
  14552  06-07-04  16:48   lib/DynaLoader.pm
   2348  06-07-04  16:48   lib/Exporter.pm
   6534  06-07-04  16:48   lib/Exporter/Heavy.pm
   3679  06-07-04  16:48   lib/Fcntl.pm
   8642  06-07-04  16:48   lib/Storable.pm
   2925  06-07-04  16:48   lib/XSLoader.pm
      0  02-03-04  01:32   lib/auto/Fcntl/Fcntl.bs
  24647  02-03-04  01:32   lib/auto/Fcntl/Fcntl.dll
      0  02-03-04  01:33   lib/auto/Storable/Storable.bs
  61517  02-03-04  01:33   lib/auto/Storable/Storable.dll
    669  06-07-04  16:48   lib/strict.pm
   1225  06-07-04  16:48   lib/vars.pm
  13243  06-07-04  16:48   lib/warnings.pm
    829  06-07-04  16:48   lib/warnings/register.pm
     38  06-07-04  16:47   script/hello.pl
    262  06-07-04  16:48   script/main.pl
 ------                    -------
 181788                    24 files

This is for PAR 0.83, Module::ScanDeps 0.43 on Windows XP with Perl
5.8.3.
On Solaris with Perl 5.6.1, autosplit.ix is correctly named
lib/auto/Storable/autosplit.ix in the zip archive.

Now, for "pp -c ..." (or "pp -x ...") Module::ScanDeps dumps the
contents of %INC after compilation (or execution). *.ix and *.al
are special, because they show up in %INC as e.g.

C:/local-programs/Perl/lib/auto/Storable/autosplit.ix =>
C:/local-programs/Perl/lib/auto/Storable/autosplit.ix

while *.pm files show up as e.g.

Storable.pm => C:/local-programs/Perl/lib/Storable.pm

This holds for both Unix and Windows, but on Unix the keys obviously
get cleaned up, while they are passed unchanged on Windows creating the
strange archive member.

Cheers, Roderich





------------------------------------------------------------------ 
sw-engineering & production environment at BMW group 
------------------------------------------------------------------ 
roderich schupp (argumentum gmbh) 
[EMAIL PROTECTED] 
+49 (0)89 382-34944 
http://www3.muc/bereiche/zentrale_iv/sw-engineering/km/continuus/german/
index4.htm 
------------------------------------------------------------------ 

Reply via email to