Steffen Mueller wrote:
Hi again,
Malcolm Nooning schrieb:
The results are pasted below. pp seems to be handing Zip.pm the wrong
$name.
Okay, I did some digging myself. It's the problem reported by Scott
Gifford back in October. David Romano supplied a patch to PAR::Packer
that fixes this, but I couldn't apply it fully because I felt it didn't
actually address the bug but just band-aid it in the wrong place.
It's that pp itself is getting bad paths from Module::ScanDeps. So the
right place to hook into for debugging would be around line 735 of (SVN)
PAR::Packer. Right after the following call:
$scan_dispatch->(
rv => \%map,
files => [EMAIL PROTECTED],
execute => $opt->{x},
compile => $opt->{c},
skip => \%skip,
($opt->{n}) ? () : (
recurse => 1,
first => 1,
),
);
This runs Module::ScanDeps' scan_deps_runtime() and populates %map.
Please dump %map to see where there are problematic entries. With that
information, it should be easier to delve into the M::SD code and see
where it's coming from.
Thanks!
Steffen
I hope this helps. Any other suggestions?
---------------paste Packer.pm code
$scan_dispatch->(
rv => \%map,
files => [EMAIL PROTECTED],
execute => $opt->{x},
compile => $opt->{c},
skip => \%skip,
($opt->{n}) ? () : (
recurse => 1,
first => 1,
),
);
{
my ($x1key, $x1val);
my ($x2key, $x2val);
my ($x3item);
while ( ($x1key, $x1val) = each (%map) ) {
print("_" x 30, "\n");
print ("x1key is $x1key\n");
while ( ($x2key, $x2val) = each (%$x1val) ) {
print ("x2key is $x2key\n");
if (ref($x2val) eq "ARRAY") {
if (@$x2val == 0) {
print ("x2val is an empty array\n");
} else {
foreach $x3item (@$x2val) {
print ("\t\t$x3item\n");
}
}
} else {
print ("\tx2val is $x2val\n");
}
}
print("_" x 30, "\n");
}
}
---------------end paste Packer.pm code
------------paste results
C:\aaa>pp -c hello.pl
Set up gcc environment - 3.4.2 (mingw-special)
______________________________
x1key is C:/perl/site/lib/sitecustomize.pl
x2key is used_by
x2val is an empty array
x2key is file
x2val is C:/perl/site/lib/sitecustomize.pl
x2key is type
x2val is data
x2key is key
x2val is C:/perl/site/lib/sitecustomize.pl
______________________________
------------end paste results
What can I do next?