On Sat, Dec 4, 2010 at 2:22 PM, John M. Gamble <jgam...@ripco.com> wrote: >> Module::Build -- this is the 'pure perl' alternative. It is very easy >> to customize compared to EU::MM but you can't rely on users having a >> new enough Module::Build for any given feature unless you target Perl >> 5.10.1 (which added the ability for CPAN/CPANPLUS to bootstrap tools >> you need *before* running Build.PL) >> > > What features do you mean? I shifted over to Module::Build when I was still > using Perl 5.6. > My packages are not complicated (single .pm file; pure perl; the > "create_makefile_pl" > set to 'traditional' for non-Build users), so maybe there's something else?
For a simple distribution, Module::Build with a 'traditional' generated Makefile.PL is a good option. (Though older Module::Build::Compat's were rather buggy, as long as *you* have a new M::B when you generate the traditional Makefile.PL, things should work fine.) However, unless you're doing some customization, it doesn't really matter whether you use it or ExtUtils::MakeMaker. If you want to use newer features, like 'share_dir', then your end users need to have an up-to-date Module::Build and that is only possible if they have up-to-date CPAN/CPANPLUS or if they are running 5.10.1, which came with sufficiently modern CPAN clients to respect the 'configure_requires' key. If you do want things like share_dir, and if you really want to avoid bug reports from people with out of date M::B, then M::I offers a better, backwards compatible approach. (As do Dist::Zilla's generated Makefile.PL's, for the most part) > Huh. I would never have considered Module::Build complicated (but then > again, I don't have complicated modules). It's not that it's complicated, but I found that M::B makes life easier for authors, at the occasional expense of end users who don't have the right M::B installed. However, I have found that most of what M::B did to make life easy as an author I can get with Dist::Zilla, and it creates a Makefile.PL that is as backwards compatible as possible. Note: I am the current maintainer of Module::Build, so I have some experience with the large set of bugs and edge cases that people experience with it that certainly colors my outlook on it. -- David