On Tue, Sep 2, 2008 at 1:17 PM, David E. Wheeler <[EMAIL PROTECTED]> wrote: >> Ask the maintainers of M::B, EU::MM and M::I to all export a >> `halt` function that does just this? That would also provide >> a convenient spot in the respective modules' docs for related >> CPAN Testers arcana, so people wouldn't have to stumble onto a >> wiki page in the bottom of a locked cabinet stuck in a disused >> lavatory with a sign on the door saying "beware the leopard" >> in order to learn these trivia. > > That seems entirely reasonable to me. This would do it, I guess: > > sub halt { > my ($self, $msg) = @_; > require Carp; > carp($msg); > exit; > } > > Seem reasonable to people? If so, I'll submit it to Module::Build.
That only moves the annoyance. And possibly magnifies it. Instead of the annoyance of authors writing "warn $foo and exit 0", now they'll need to use configure_requires in META.yml to demand an up-to-date version of Module::Build. And it still won't work on an older Perl with an older CPAN or CPANPLUS that doesn't know about configure_requires. If you really want this to be abstracted safely, you'll need to do it like Devel::CheckLib. Write Devel::HaltPL that exports "halt" and a script to help authors bundle that in the inc/ directory. And I'm not convinced that less annoying or clunky than "warn and exit". -- David