Subject: | pminst duplication and MSWin32-x86-multi-thread::XML::Parser |
The problem and solution
$ perl pminst |grep XML::Parser$
XML::Parser
MSWin32-x86-multi-thread::XML::Parser
$ perl pminst -l |grep XML.Parser.pm$
C:/perl/site/5.10.1/lib/MSWin32-x86-multi-thread/XML/Parser.pm
C:/perl/site/5.10.1/lib/MSWin32-x86-multi-thread/XML/Parser.pm
$ perl -le"print for @INC"
C:/perl/5.10.1/lib/MSWin32-x86-multi-thread
C:/perl/5.10.1/lib
C:/perl/site/5.10.1/lib/MSWin32-x86-multi-thread
C:/perl/site/5.10.1/lib
.
$ patch -p1 < note-pmtools-1.10-pminst.patch.txt
patching file pminst
$ perl pminst |grep XML::Parser$
XML::Parser
$ perl pminst |grep MSWin
$
Subject: | note-pmtools-1.10-pminst.patch.txt |
diff -ruN pmtools-1.10/pminst pmtools-1.10-new/pminst
--- pmtools-1.10/pminst 2009-10-19 03:55:19.671875000 -0700
+++ pmtools-1.10-new/pminst 2009-10-19 03:57:05.421875000 -0700
@@ -27,11 +27,22 @@
}
sub wanted {
- if (-d && /^[a-z]/) {
- # this is so we don't go down site_perl etc too early
- $File::Find::prune = 1;
- return;
+ #if (-d && /^[a-z]/) {
+ if( -d ) {
+ my $in_inc = 0;
+ for my $inc( @INC ) {
+ if( $inc =~ /^\Q$startdir/ ){
+ $in_inc++
+ }
+ }
+
+ if( /^[a-z]/ or $in_inc > 1) {
+ # this is so we don't go down site_perl etc too early
+ $File::Find::prune = 1;
+ return;
+ }
}
+
return unless /\.pm$/;
local $_ = $File::Find::name;
($tmpname = $_) =~ s{^\Q$startdir/}{};