What is the correct way to stop a Perl module build process?
If a Perl module I create has something like a "Makefile.PL" or "Build.PL" to build a Perl module, and, for example, the module requires a particular operating system or a particular library to be installed in the system, how should I write "Makefile.PL" so that the build process halts correctly? I'm particularly interested in what method is required by开发者_开发百科 the CPAN testers in order that the module is not given a "fail" result on http://www.cpantesters.org/.
To quote http://wiki.cpantesters.org/wiki/CPANAuthorNotes:
"How can I indicate that my distribution only works on a particular operating system?"
While it isn't a very elegant solution, the recommend approach is to either die in the Makefile.PL or Build.PL (or BAIL_OUT in a test file) with one of the following messages:
No support for OS
OS unsupported
CPAN Testers tools will look for one of those phrases and will send an NA (Not Available) report for that platform.
"How can I stop getting FAIL reports for missing libraries or other non-Perl dependencies?"
If you have some special dependencies and don't want to get CPAN Testers reports if a dependency is not available, just exit from the Makefile.PL or Build.PL normally (with an exit code of 0) before the Makefile or Build file is created.
exit 0 unless some_dependency_is_met();
精彩评论