From: Graham Knop Date: Mon, 23 May 2016 13:13:51 +0000 (-0400) Subject: only check for archname as last component of %INC path X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=06330047ac3d4687291eff2bca47fd511d3b89ff;p=scpubgit%2FObject-Remote.git only check for archname as last component of %INC path The archname may exist elsewhere in the @INC path. Only filter out modules from what perl intended to load as an arch dir. --- diff --git a/lib/Object/Remote/FatNode.pm b/lib/Object/Remote/FatNode.pm index ec91733..93fa932 100644 --- a/lib/Object/Remote/FatNode.pm +++ b/lib/Object/Remote/FatNode.pm @@ -64,22 +64,32 @@ foreach(keys(%mods)) { } } +my %mod_libdir = map { + (my $lib_dir = $_) =~ s/[\\\/]$mods{$_}\z//; + $_ => $lib_dir; +} keys %mods; + my @non_core_non_arch = ( $file_names{'Devel/GlobalDestruction.pm'} ); -push @non_core_non_arch, grep +( + +push @non_core_non_arch, grep { + local $_ = $mod_libdir{$_}; not ( - #some of the config variables can be empty which will eval as a matching regex - $Config{privlibexp} ne '' && /^\Q$Config{privlibexp}/ + /[\\\/]\Q$Config{archname}\E\z/ + or /[\\\/]\Q$Config{myarchname}\E\z/ + #some of the config variables can be empty which will eval as a matching regex + or $Config{privlibexp} ne '' && /^\Q$Config{privlibexp}/ or $Config{archlibexp} ne '' && /^\Q$Config{archlibexp}/ or $Config{vendorarchexp} ne '' && /^\Q$Config{vendorarchexp}/ or $Config{sitearchexp} ne '' && /^\Q$Config{sitearchexp}/ ) -), grep !/\Q$Config{archname}/, grep !/\Q$Config{myarchname}/, keys %mods; +} keys %mods; -my @core_non_arch = grep +( +my @core_non_arch = grep { + local $_ = $mod_libdir{$_}; $Config{privlibexp} ne '' && /^\Q$Config{privlibexp}/ and not($Config{archlibexp} ne '' && /^\Q$Config{archlibexp}/ - or /\Q$Config{archname}/ or /\Q$Config{myarchname}/) -), keys %mods; + or /[\\\/]\Q$Config{archname}\E\z/ or /[\\\/]\Q$Config{myarchname}\E\z/) +} keys %mods; my $start = stripspace <<'END_START'; # This chunk of stuff was generated by Object::Remote::FatNode. To find