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