++ed by:

1 non-PAUSE user.



App::LintPrereqs - Check extraneous/missing prerequisites in dist.ini


This document describes version 0.34 of App::LintPrereqs (from Perl distribution App-LintPrereqs), released on 2016-02-04.


 # Use via lint-prereqs CLI script


lint_prereqs(%args) -> [status, msg, result, meta]

Check extraneous/missing prerequisites in dist.ini.

Check [Prereqs / *] (as well as OSPrereqs, Extras/lint-prereqs/Assume-*) sections in your dist.ini against what's actually being used in your Perl code (using Perl::PrereqScanner::Lite) and what's in Perl core list of modules. Will complain if your prerequisites are not actually used (extraneous dependencies), or if there are missing prerequisites. Will also complain if a prerequisite is already in Perl core (but this can be configured).

Designed to work with prerequisites that are manually written. Does not work if you use AutoPrereqs.

Sometimes there are prerequisites that you know are used but can't be detected by scan_prereqs, or you want to include anyway. If this is the case, you can instruct lint_prereqs to assume the prerequisite is used.

 ;!lint_prereqs assume-used # even though we know it is not currently used
 ;!lint_prereqs assume-used # we are forcing a certain version

Sometimes there are also prerequisites that are detected by scan_prereqs, but you know are already provided by some other modules. So to make lint-prereqs ignore them:

 [Extras / lint-prereqs / assume-provided]

By default, core modules are not allowed to be specified. Sometimes though you need to specify because on some systems some core modules are not available (e.g. they are split into separate OS packages). In this case, you can specify:

 ;!lint_prereqs allow-core

This function is not exported by default, but exportable.

Arguments ('*' denotes required arguments):

  • core_prereqs => bool (default: 1)

    Whether or not prereqs to core modules are allowed.

    If set to 0 (the default), will complain if there are prerequisites to core modules. If set to 1, prerequisites to core modules are required just like other modules.

  • lite => bool (default: 1)

    Use Perl::PrereqScanner::Lite instead of Perl::PrereqScanner.

    Lite is faster but it might still miss detecting some modules.

  • perl_version => str

    Perl version to use (overrides scan_prereqs/dist.ini).

Returns an enveloped result (an array).

First element (status) is an integer containing HTTP status code (200 means OK, 4xx caller error, 5xx function error). Second element (msg) is a string containing error message, or 'OK' if status is 200. Third element (result) is optional, the actual result. Fourth element (meta) is called result metadata and is optional, a hash that contains extra information.

Return value: (any)


Please visit the project's homepage at https://metacpan.org/release/App-LintPrereqs.


Source repository is at https://github.com/perlancar/perl-App-LintPrereqs.


Please report any bugs or feature requests on the bugtracker website https://rt.cpan.org/Public/Dist/Display.html?Name=App-LintPrereqs

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.


perlancar <perlancar@cpan.org>


This software is copyright (c) 2016 by perlancar@cpan.org.

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