-$ver = sprintf("%5.3f", $major + $PATCHLEVEL / 1000);
-$release = substr($ver,0,3);
-$patchlevel = substr($ver,3,2);
+find(sub {
+ if ("$File::Find::dir/$_" =~ m{^ext/[^/]+/(.*)\.pm$}) {
+ (my $pm = $1) =~ s{^lib/}{};
+ $archpms{$pm} = 1;
+ }
+ }, 'ext');
+
+my $ver = $];
+my $release = substr($ver,0,3); # Not used presently.
+my $patchlevel = substr($ver,3,2);
+die "Patchlevel of perl ($patchlevel)",
+ "and patchlevel of config.sh ($Config{'PERL_VERSION'}) don't match\n"
+ if $patchlevel != $Config{'PERL_VERSION'};
+
+# Fetch some frequently-used items from %Config
+my $installbin = $Config{installbin};
+my $installscript = $Config{installscript};
+my $installprivlib = $Config{installprivlib};
+my $installarchlib = $Config{installarchlib};
+my $installsitelib = $Config{installsitelib};
+my $installsitearch = $Config{installsitearch};
+my $installman1dir = $Config{installman1dir};
+my $man1ext = $Config{man1ext};
+my $libperl = $Config{libperl};
+# Shared library and dynamic loading suffixes.
+my $so = $Config{so};
+my $dlext = $Config{dlext};
+
+my $d_dosuid = $Config{d_dosuid};
+my $binexp = $Config{binexp};
+
+if ($Is_VMS) { # Hang in there until File::Spec hits the big time
+ foreach ( \$installbin, \$installscript, \$installprivlib,
+ \$installarchlib, \$installsitelib, \$installsitearch,
+ \$installman1dir ) {
+ $$_ = unixify($$_); $$_ =~ s:/$::;
+ }
+}