Perl::PrereqScanner::NotQuiteLite(3pm) | User Contributed Perl Documentation | Perl::PrereqScanner::NotQuiteLite(3pm) |
Perl::PrereqScanner::NotQuiteLite - a tool to scan your Perl code for its prerequisites
use Perl::PrereqScanner::NotQuiteLite; my $scanner = Perl::PrereqScanner::NotQuiteLite->new( parsers => [qw/:installed -UniversalVersion/], suggests => 1, perl_minimum_version => 1, ); my $context = $scanner->scan_file('path/to/file'); my $requirements = $context->requires; my $recommends = $context->recommends; my $suggestions = $context->suggests; # requirements in evals my $noes = $context->noes;
Perl::PrereqScanner::NotQuiteLite is yet another prerequisites scanner. It passes almost all the scanning tests for Perl::PrereqScanner and Module::ExtractUse (ie. except for a few dubious ones), and runs slightly faster than PPI-based Perl::PrereqScanner. However, it doesn't run as fast as Perl::PrereqScanner::Lite (which uses an XS lexer).
Perl::PrereqScanner::NotQuiteLite also recognizes "eval". Prerequisites in "eval" are not considered as requirements, but you can collect them as suggestions.
Conditional requirements or requirements loaded in a block are treated as recommends. Noed modules are stored separately (since 0.94). You may or may not need to merge them into requires.
Perl::PrereqScanner::NotQuiteLite can also recognize some of the new language features such as "say", subroutine signatures, and postfix dereferences, to improve the minimum perl requirement (since 0.9905).
creates a scanner object. Options are:
If you need more, you can pass extra parser names to the scanner, or ":bundled", which loads and registers all the parsers bundled with this distribution. If you have your own parsers, you can specify ":installed" to load and register all the installed parsers.
You can also pass a project-specific parser (that lies outside the "Perl::PrereqScanner::NotQuiteLite::Parser" namespace) by prepending "+" to the name.
use Perl::PrereqScanner::NotQuiteLite; my $scanner = Perl::PrereqScanner::NotQuiteLite->new( parsers => [qw/+PrereqParser::For::MyProject/], );
If you don't want to load a specific parser for some reason, prepend "-" to the parser name.
takes a path to a file and returns a ::Context object.
takes a string, scans and returns a ::Context object.
Perl::PrereqScanner, Perl::PrereqScanner::Lite, Module::ExtractUse
Perl::PrereqScanner::NotQuiteLite::App to scan a whole distribution.
scan-perl-prereqs-nqlite is a command line interface of the above.
Kenichi Ishigaki, <ishigaki@cpan.org>
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.
2020-10-21 | perl v5.30.3 |