Intrepid has asked for the wisdom of the Perl Monks concerning the following question:

Here we go again, a pretty little problem with installing a CPAN module that I want to be on my system. The failure is with Module::Manifest::Skip, its tests won't get past the compile stage. The relevant message as appears below is Can't locate object method "_install_subs" via package "Module::Manifest::Skip". The failure was thrown at /usr/share/perl5/vendor_perl/5.40/Moo.pm line 49, so I updated Moo to release 2.005005 but that didn't solve the problem.

My system has these characteristics:

/usr/bin/perl    v5.40.3
MS Windows 11
CYGWIN_NT-10.0-26100 3.6.4-1.x86_64 2025-07-15 07:55 UTC x86_64 Cygwin
@INC:
/usr/local/lib/perl5/site_perl/5.40/x86_64-cygwin-threads
/usr/local/share/perl5/site_perl/5.40
/usr/lib/perl5/vendor_perl/5.40/x86_64-cygwin-threads
/usr/share/perl5/vendor_perl/5.40
/usr/lib/perl5/5.40/x86_64-cygwin-threads
/usr/share/perl5/5.40

The following console output is a bit redundant but I wanted to be thorough:

Running [/usr/bin/make UNINST=1]... cp share/MANIFEST.SKIP blib/lib/auto/share/dist/Module-Manifest-Skip/M +ANIFEST.SKIP cp lib/Module/Manifest/Skip.pm blib/lib/Module/Manifest/Skip.pm cp lib/Module/Manifest/Skip.pod blib/lib/Module/Manifest/Skip.pod Manifying 1 pod document Running [/usr/bin/make test UNINST=1]... Skip blib/lib/auto/share/dist/Module-Manifest-Skip/MANIFEST.SKIP (unch +anged) PERL_DL_NONLAZY=1 "/usr/bin/perl.exe" "-MExtUtils::Command::MM" "-MTes +t::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'bl +ib/lib', 'blib/arch')" t/*.t Can't locate object method "_install_subs" via package "Module::Manife +st::Skip" at /usr/share/perl5/vendor_perl/5.40/Moo.pm line 49. BEGIN failed--compilation aborted at t/TestModuleManifestSkip.pm line +6. Compilation failed in require at t/create.t line 3. BEGIN failed--compilation aborted at t/create.t line 3. t/create.t .............. Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run Can't locate object method "_install_subs" via package "Module::Manife +st::Skip" at /usr/share/perl5/vendor_perl/5.40/Moo.pm line 49. BEGIN failed--compilation aborted at t/TestModuleManifestSkip.pm line +6. Compilation failed in require at t/recreate.t line 3. BEGIN failed--compilation aborted at t/recreate.t line 3. t/recreate.t ............ Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run t/release-pod-syntax.t .. skipped: these tests are for release candida +te testing Can't locate object method "_install_subs" via package "Module::Manife +st::Skip" at /usr/share/perl5/vendor_perl/5.40/Moo.pm line 49. BEGIN failed--compilation aborted at t/TestModuleManifestSkip.pm line +6. Compilation failed in require at t/skip1.t line 3. BEGIN failed--compilation aborted at t/skip1.t line 3. t/skip1.t ............... Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run Can't locate object method "_install_subs" via package "Module::Manife +st::Skip" at /usr/share/perl5/vendor_perl/5.40/Moo.pm line 49. BEGIN failed--compilation aborted at t/TestModuleManifestSkip.pm line +6. Compilation failed in require at t/update.t line 3. BEGIN failed--compilation aborted at t/update.t line 3. t/update.t .............. Dubious, test returned 255 (wstat 65280, 0xff00) No subtests run Test Summary Report ------------------- t/create.t (Wstat: 65280 (exited 255) Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/recreate.t (Wstat: 65280 (exited 255) Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/skip1.t (Wstat: 65280 (exited 255) Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output t/update.t (Wstat: 65280 (exited 255) Tests: 0 Failed: 0) Non-zero exit status: 255 Parse errors: No plan found in TAP output Files=5, Tests=0, 2 wallclock secs ( 0.02 usr 0.19 sys + 0.25 cusr + 1.51 csys = 1.96 CPU) Result: FAIL Failed 4/5 test programs. 0/0 subtests failed. make: *** [Makefile:851: test_dynamic] Error 255

Oct 12, 2025 at 18:37 UTC

  • Comment on Test failures prevent installation of Module::Package::RDF (on CygPerl) ('Dependency Hell')
  • Download Code

Replies are listed 'Best First'.
Re: Test failures prevent installation of Module::Package::RDF (on CygPerl) ('Dependency Hell')
by choroba (Cardinal) on Oct 12, 2025 at 20:03 UTC
    The Testers don't show much optimism about passing the tests in recent Perl versions.

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
Re: Test failures prevent installation of Module::Package::RDF (on CygPerl) ('Dependency Hell')
by Intrepid (Curate) on Oct 12, 2025 at 22:15 UTC

    Looking around at this code a little more. The subroutine where the error is triggered is this here:

    Moo.pm lines 37 to 52:
    37 sub import { 38 my $target = caller; 39 my $class = shift; 40 if ($INC{'Role/Tiny.pm'} and Role::Tiny->is_role($target)) { 41 croak "Cannot import Moo into a role"; 42 } 43 44 _set_loaded(caller); 45 46 strict->import; 47 warnings->import; 48 49 $class->_install_subs($target, @_); 50 $class->make_class($target); 51 return; 52 }

    I've not yet learned enough about Moo or Moose or any of these entries in the contest to impose OO on Perl, so this code is pretty much opaque to me. What I do get is that in line 49 $class holds the class name "Module::Manifest::Skip" and Skip.pm has no method (sub) "_install_subs".

    Ingy is a pretty well-known CPAN contributor and if this is his error I hope he'll find it and fix it. Maybe I'll try to help out by filing a bug report.

        — Soren Oct 12, 2025 at 22:14 UTC

    A just machine to make big decisions
    Programmed by fellows (and gals) with compassion and vision
    We'll be clean when their work is done
    We'll be eternally free yes, and eternally young
    Donald Fagen —> I.G.Y.
    (Slightly modified for inclusiveness)

        That's the same bug for sure, choroba:

        This GitHub bug#7 was reported for Moo 2.004000 in 2020

        I am confused about what decisions have been made (that is, the reasons for those decisions) to not fix a bug that was reported in 2020 (!). And tonight is the first time I've heard of a distroprefs patch. I'll do some Google research and figure it out, or not, but in any event thanks much choroba for rescuing me from submitting a bug report that would just duplicate one already made.

            — Soren

        Oct 13, 2025 at 02:35 UTC

        Ok choroba, having helped me out, your reward is more questions ;-) You wrote:

        This comment contains a link to a distroprefs patch.

        So, I attempted to learn about distroprefs on my own (how did I not know about this? it's a mystery–I have used cpan for a long time). I read this short article by brian d foy. I'm setting things up according to the instructions. My remaining question is: where's the actual patch? Can I get it from github (I looked around, I'm still rather clumsy with github)? The yaml file linked to in the comment is 1/2 of what I need, the patch is the other 1/2. If you you can guide me I'll send you cookies (well not really but I will be grateful). If I have to, I'll make a patch myself, so, not a big deal.

            — Soren

        Oct 13, 2025 at 18:22 UTC