scan-perl-prereqs-nqlite - Man Page


  scan-perl-prereqs-nqlite [DIRS|FILES]


scan-perl-prereqs-nqlite traverses several files and subdirectories in the current directory with File::Find to collect all .pl, .PL, .pm, .t, .psgi files (as well as all the files in scripts? and bin directories), and prints a single combined list of prerequisites, which should be suitable for piping to cpanm or similar tools.

You can also pass files and/or directories to limit files to scan. In this case, however, scan-perl-prereqs-nqlite may fail to exclude modules that should belong to the same distribution.



Show the version.


Show this help.


Print prerequisites as a JSON if JSON::PP is installed.

cpanfile, save_cpanfile

Print prerequisites as cpanfile if Module::CPANfile is installed. If safe-cpanfile is set, create or update cpanfile.


Print suggestions (used modules in eval) as well.


Print requirements/suggestions for developers (used modules in xt and author directories) as well.


May modify required perl version if new language features are used without declaring the required perl version explicitly.


Ignore prerequisites that are bundled with Perl (of 5.008001 by default). This requires Module::CoreList version 2.99 or above.


Ignore prerequisites that are bundled with Perl of a specific version. This implies exclude-core as well.


Print requirements/suggestions in .pm files that are placed under t/ directory but are not directly used from .t files, too. If Test::Class family is used under t/, this option is implicitly set.


Set the base directory from where scan-perl-prereqs-nqlite starts traversing files and directories.


Set a list of paths scan-perl-prereqs-nqlite should ignore. This is useful when your distribution has a set of OS-specific modules, for example.


You can also specify a regexp instead of a list of paths. If this is set, ignore options are ignored.


Set a list of modules scan-perl-prereqs-nqlite should consider private, that is, that are not uploaded to the CPAN. Contrary to the ignore option, which makes the scanner skip scanning the file, this option lets the scanner scan files, and excludes matched prerequisites afterwards.


You can also specify a regexp instead of a list of modules. If this is set, private options are ignored.


Set a list of extra paths scan-perl-prereqs-nqlite should also scan. This is useful when your application/distribution uses an untraditional file layout.

  scan-perl-prereqs-nqlite \
    --feature name:description:lib/My/Plugin/For/SpecificOS \
    --feature name:description:web/lib,web/bin

Specify a feature name, a description, and matching paths.


You can specify an index name of CPAN::Common::Index module (such as “Mirror” or “MetaDB”) not to list all the modules of a required distribution.


If this is set, scan-perl-prereqs-nqlite will traverse subdirectories under blib to collect runtime requirements. It may return better results if some of the files are located in some uncommon places and/or some of them are listed in no_index. However, files in blib may be older than the ones under lib etc, and you need to update them by running a make or a Build script before you run scan-perl-prereqs-nqlite.


Set a list of parsers (or parser tags) scan-perl-prereqs-nqlite uses. If this option is not set, the scanner uses :installed parsers by default.


Add a list of additional @INC path scan-perl-prereqs-nqlite looks for private parsers.


Print verbose messages.


Kenichi Ishigaki, <>


2021-09-13 perl v5.34.0 User Contributed Perl Documentation