find(sub {
if (($File::Find::name =~ m{^ext\b(.*)/([^/]+)\.pm$}) &&
- ! grep { $File::Find::name =~ /^ext\/$_/ } @nonxs)
+ ! grep { (my $dir = $_) =~ s/\//-/g;
+ $File::Find::name =~ /^ext\/$dir/ } @nonxs)
{
my($path, $modname) = ($1,$2);
+ # Change hypenated name like Filter-Util-Call to nested
+ # directory name Filter/Util/Call
+ $path =~ s{-}{/}g;
+
# strip to optional "/lib", or remove trailing component
$path =~ s{.*/lib\b}{} or $path =~ s{/[^/]*$}{};
$name = "$dir/$name" if $dir ne '';
+ return if $name eq 'ExtUtils/XSSymSet.pm' and !$Is_VMS;
+
my $installlib = $installprivlib;
- if ($dir =~ /^auto/ ||
+ if ($dir =~ /^auto\// ||
($name =~ /^(.*)\.(?:pm|pod)$/ && $archpms{$1}) ||
($name =~ /^(.*)\.(?:h|lib)$/i && ($Is_W32 || $Is_NetWare)) ||
- $name=~/^Config_(heavy\|git)\.pl\z/
+ $name=~/^Config_(heavy|git)\.pl\z/
) {
$installlib = $installarchlib;
return unless $do_installarchlib;