SYNOPSIS To test your distribution: % cd Your-Dist % PERL5OPT=-Mlib::prereqs::only prove -l To allow RuntimeRecommends prereqs too: % PERL5OPT=-Mlib::prereqs::only=RuntimeRecommends,1 prove -l To test script: % PERL5OPT=-Mlib::prereqs::only some-script To test script in your distribution (as well as turn debugging on, and allowing core modules even though they are not specified in dist.ini): % cd Your-Dist % perl -Mlib::prereqs::only=debug,1,allow_core,1 -Ilib bin/some-script DESCRIPTION This pragma reads the prerequisites found in dist.ini, the modules found in lib/, and uses lib::filter to only allow those modules to be locateable/loadable. It is useful while testing Dist::Zilla-based distribution: it tests that the prerequisites you specify in dist.ini is already complete (at least to run the test suite). Some caveats: * For using with prove, this pragma currently only works via PERL5OPT Using: % prove -Mlib::prereqs::only ... currently does not work, because the test script is run in a separate process. By default, only prereqs specified in RuntimeRequires and TestRequires sections are allowed. But you can include other sections too if you want: % PERL5OPT=-Mlib::prereqs::only=RuntimeRecommends,1,TestSuggests,1 prove ... Currently only (Runtime|Test)(Requires|Recommends|Suggests) are recognized. Other options that can be passed to the pragma: * allow_core => bool (default: 1) This will be passed to lib::filter. By default (allow_core=1), core modules will also be allowed. If you specify core modules in your prereqs and want to test that, perhaps you want to set this to 0 (but currently XS modules won't work with allow_core set to 0). * debug => bool (default: 0) If set to 1, will print debug messages. * allow => str Specify an extra set of modules to allow. Value is a semicolon-separated list of module names. Will be passed to lib::filter. * disallow => str Specify an extra set of modules to disallow. Value is a semicolon-separated list of module names. Will be passed to lib::filter. * allow_re => str Specify module pattern to allow. Will be passed to lib::filter. * disallow_re => str Specify module pattern to disallow. Will be passed to lib::filter. SEE ALSO lib::filter