summaryrefslogtreecommitdiff
path: root/installperl
diff options
context:
space:
mode:
authorGurusamy Sarathy <gsar@cpan.org>2000-03-06 04:48:17 +0000
committerGurusamy Sarathy <gsar@cpan.org>2000-03-06 04:48:17 +0000
commit68c887af8bbbe8aaa5d726ce35fbbb66c21b6301 (patch)
treeb3ed7a1e8e3c93d610d783901fa59e65e1a59aa0 /installperl
parentbeccb14cab66f75e33e409a80fccc6cd1a636e4d (diff)
downloadperl-68c887af8bbbe8aaa5d726ce35fbbb66c21b6301.tar.gz
installperl wasn't putting extensions with two or more
nested package names in the archlib p4raw-id: //depot/perl@5568
Diffstat (limited to 'installperl')
-rwxr-xr-xinstallperl22
1 files changed, 19 insertions, 3 deletions
diff --git a/installperl b/installperl
index dd6d66394d..656943c787 100755
--- a/installperl
+++ b/installperl
@@ -86,12 +86,28 @@ if ((-e "testcompile") && (defined($ENV{'COMPILE'})))
}
find(sub {
- if ("$File::Find::dir/$_" =~ m{^ext/[^/]+/(.*)\.pm$}) {
- (my $pm = $1) =~ s{^lib/}{};
- $archpms{$pm} = 1;
+ if ("$File::Find::dir/$_" =~ m{^ext\b(.*)/([^/]+)\.pm$}) {
+ my($path, $modname) = ($1,$2);
+
+ # strip trailing component first
+ $path =~ s{/[^/]*$}{};
+
+ # strip optional "/lib";
+ $path =~ s{/lib\b}{};
+
+ # strip any leading /
+ $path =~ s{^/}{};
+
+ # reconstitute canonical module name
+ $modname = "$path/$modname" if length $path;
+
+ # remember it
+ $archpms{$modname} = 1;
}
}, 'ext');
+# print "[$_]\n" for sort keys %archpms;
+
my $ver = $Config{version};
my $release = substr($],0,3); # Not used presently.
my $patchlevel = substr($],3,2);