NAME

scan-perl-prereqs-nqlite

SYNOPSIS

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

DESCRIPTION

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.

OPTIONS

version

Show the version.

help

Show this help.

json

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.

suggests

Print suggestions (used modules in eval) as well.

develop

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

perl_minimum_version

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

exclude_core

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

perl_version

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

allow_test_pms

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.

base_dir

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

ignore

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.

ignore_re

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

optional

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.

optional_re

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

private

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.

private_re

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

scan_also

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.

feature
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.

use_index

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.

blib

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.

parser

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.

inc

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

verbose

Print verbose messages.

AUTHOR

Kenichi Ishigaki, <ishigaki@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Kenichi Ishigaki.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.