>----- Original Message -----
>From: "Roderich Schupp" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Sent: Monday, June 07, 2004 11:06 AM
>Subject: Problems with "pp -c ..."
>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-e44c2953061
>488246fa9
>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 <=====
It's a bug in Module::ScanDeps (0.43 here). The following lines
(in Module::Scandeps::_make_rv) are obviously meant to
clean up keys in %INC that are absolute pathnames
(which is the case for *.ix and *.al files) by stripping
any prefix that's in @INC. But the check m"^/" for "absoluteness"
only works for Unix. Fix:
--- lib/Module/ScanDeps.pm.orig 2004-06-08 14:34:53.075258200 +0200
+++ lib/Module/ScanDeps.pm 2004-06-08 14:36:23.520723200 +0200
@@ -833,10 +833,12 @@
my @newinc = map(quotemeta($_), @$inc_array);
my $inc = join('|', sort { length($b) <=> length($a) } @newinc);
+ require File::Spec;
+
my $key;
foreach $key (keys(%$inchash)) {
my $newkey = $key;
- $newkey =~ s"^(?:(?:$inc)/?)""sg if ($newkey =~ m"^/");
+ $newkey =~ s"^(?:(?:$inc)/?)""sg if
File::Spec->file_name_is_absolute($newkey);
$rv->{$newkey} = {
'used_by' => [],
Cheers, Roderich