+ # .exists files, .PL files, and test files.
+ return if $name =~ m{\.orig$|\.rej$|~$|^#.+#$|,v$|^\.exists|\.PL$|\.plc$|\.t$|^test\.pl$|^dbm_filter_util.pl$} ||
+ $dir =~ m{/t(?:/|$)};
+ # ignore the cpan script in lib/CPAN/bin, the instmodsh and xsubpp
+ # scripts in lib/ExtUtils, the prove script in lib/Test/Harness,
+ # the corelist script from lib/Module/CoreList/bin and ptar* in
+ # lib/Archive/Tar/bin, the config_data script in lib/Module/Build/scripts
+ # (they're installed later with other utils)
+ return if $name =~ /^(?:cpan|instmodsh|prove|corelist|ptar|cpan2dist|cpanp|cpanp-run-perl|ptardiff|config_data)\z/;
+ # ignore the Makefiles
+ return if $name =~ /^makefile$/i;
+ # ignore the test extensions
+ return if $dir =~ m{\bXS/(?:APItest|Typemap)\b};
+ return if $name =~ m{\b(?:APItest|Typemap)\.pm$};
+ # ignore the demo files
+ return if $dir =~ /\b(?:demos?|eg)\b/;
+
+ # ignore READMEs, MANIFESTs, INSTALL docs, META.ymls and change logs.
+ # Changes.e2x and README.e2x are needed by enc2xs.
+ return if $name =~ m{^(?:README(?:\.\w+)?)$} && $name ne 'README.e2x';
+ return if $name =~ m{^(?:MANIFEST|META\.yml)$};
+ return if $name =~ m{^(?:INSTALL|TODO|BUGS|CREDITS)$}i;
+ return if $name =~ m{^change(?:s|log)(?:\.libnet)?$}i;
+ return if $name =~ m{^(?:SIGNATURE|PAUSE200\d\.pub)$}; # CPAN files
+ return if $name =~ m{^(?:NOTES|PATCHING)$}; # ExtUtils files
+
+ # if using a shared perl library then ignore:
+ # - static library files [of statically linked extensions];
+ # - import library files and export library files (only present on Win32
+ # anyway?) and empty bootstrap files [of dynamically linked extensions].
+ return if $Config{useshrplib} eq 'true' and
+ ($name =~ /$Config{_a}$/ or $name =~ /\.exp$/ or ($name =~ /\.bs$/ and -z $name));