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

I hope I can get connectivity to Perlmonks long enough to post this write-up. It's been just terrible. Ok. We'll hope for better days ahead.

I used Module::Starter to create the accessory files and build infrastructure for a module I've been working on for some time now. I tried installing from CPAN on a Linux box using cpan (the script) and strangely enough, although I had cpan set up to prefer EU::MM (Makefile.PL) over M::B, it used M::B. This was a fortunate error because there was mistaken encoding on the Build.PL file (my name with an umlaut over the "o" gave perl indigestion). And it was also fortunate because the template-created Build.PL had an entry for release_status that terminated the creation of ./Build with extreme prejudice:

$ perl Build.PL --installdirs=site
Illegal value 'experimental' for release_status

I have now probably explained enough of the circumstances to ask my question: is this a problem other people have noticed? I just deleted the entire line and then Build.PL ran to completion. Was there a change of heart on the part of M::B authors, regarding a release_status of "experimental"? or was the inclusion of this by Module::Starter a mistake? Guesses, ideas, knowledge? TIA. Oh, and do download / install Env::AsYaml from CPAN.

    — Sören :-)

Sep 02, 2025 at 18:24 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)

  • Comment on Module::Build Build.PL parameter inserted by Module::Starter - fatal error

Replies are listed 'Best First'.
Re: Module::Build Build.PL parameter inserted by Module::Starter - fatal error
by choroba (Cardinal) on Sep 02, 2025 at 19:00 UTC
    Module::Starter defaults to ExtUtils::MakeMaker. What parameters did you call module-starter with?

    I've used Module::Starter for most of my distributions and I've never encountered the described problem.

    It seems release_status is populated by Module::Starter::Simple, but its value is stable, not experimental. What version of Module::Starter did you use?

    map{substr$_->[0],$_->[1]||0,1}[\*||{},3],[[]],[ref qr-1,-,-1],[{}],[sub{}^*ARGV,3]
      as side note ExtUtils-MakeMaker seems to accept only:  m{\A(?:stable|testing|unstable)\z}

      L*

      There are no rules, there are no thumbs..
      Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

        That's good to know, Discipulus.

        Sep 03, 2025 at 17:56 UTC

      choroba said:

      I've used Module::Starter for most of my distributions and I've never encountered the described problem.

      Great, thanks for replying. First, I think there's a misinterpretation to dismiss (my fault, I'm sure). When I wrote about preferring M::B over EU:MM, I was referring to cpan deciding what to do when there are both Makefile.PL and Build.PL files present in the distro. I went back and checked my CPAN config (after writing, of course ;/) and it was set up to prefer Build.PL. No idea why.

      What parameters did you call module-starter with?
      Sorry, I'm afraid I don't recall. It was several weeks ago and it has scrolled off my bash history. Whatever I did, I ended up with both a Makefile.PL and a Build.PL file. Let's see ... just tested it, yeah, you can do that by providing
      both --eumm and --mb on the commandline. I must have done that?

      What version of Module::Starter did you use?
      $Module::Starter::VERSION == 1.78

      Sep 02, 2025 at 22:26 UTC

        G'day Intrepid,

        "Sorry, I'm afraid I don't recall. It was several weeks ago and it has scrolled off my bash history. Whatever I did, I ended up with both a Makefile.PL and a Build.PL file. Let's see ... just tested it, yeah, you can do that by providing both --eumm and --mb on the commandline. I must have done that?"

        Check your ~/.module-starter/config file. I have:

        ken@titan ~/.module-starter $ cat config | grep build builder: ExtUtils::MakeMaker

        The builder entry takes a space-separated list. Perhaps you have something like this:

        builder: ExtUtils::MakeMaker Module::Build

        I believe that would cause the "ended up with both a Makefile.PL and a Build.PL file" situation.

        — Ken