.\" Automatically generated by Pod::Man 4.11 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Perl::PrereqScanner::NotQuiteLite::App 3pm" .TH Perl::PrereqScanner::NotQuiteLite::App 3pm "2020-10-21" "perl v5.30.3" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Perl::PrereqScanner::NotQuiteLite::App .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& scan\-perl\-prereqs\-nqlite [options] [DIRS|FILES] \& \& \-or\- \& \& use Perl::PrereqScanner::NotQuiteLite::App; \& \& my $app = Perl::PrereqScanner::NotQuiteLite::App\->new( \& parsers => [qw/:bundled/], \& suggests => 1, \& perl_minimum_version => 1, \& ); \& my $prereqs = $app\->run; .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Perl::PrereqScanner::NotQuiteLite::App walks down a directory and scans appropriate files to find prerequisites. You usually don't need to touch this module directly, but you might want to if you need finer control (to use a custom \s-1CPAN\s0 index etc). .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" creates an object. Notable options are: .IP "parsers" 4 .IX Item "parsers" Perl::PrereqScanner::NotQuiteLite::App uses all the bundled parsers by default, but you can change if you need your own parsers. See Perl::PrereqScanner::NotQuiteLite for details. .IP "recommends, suggests, perl_minimum_version" 4 .IX Item "recommends, suggests, perl_minimum_version" Perl::PrereqScanner::NotQuiteLite::App usually returns \f(CW\*(C`use\*(C'\fRd modules only, but you can change this behavior by setting these options. See Perl::PrereqScanner::NotQuiteLite for details. .IP "develop" 4 .IX Item "develop" If set, Perl::PrereqScanner::NotQuiteLite::App also scans files under \&\f(CW\*(C`xt\*(C'\fR and \f(CW\*(C`author\*(C'\fR directories to find requirements for development. .IP "exclude_core" 4 .IX Item "exclude_core" If set, Perl::PrereqScanner::NotQuiteLite::App ignores prerequisites that are bundled with Perl (of 5.008001 by default, or of a \f(CW\*(C`use\*(C'\fRd perl version if any). This requires Module::CoreList version 2.99 or above. .IP "perl_version" 4 .IX Item "perl_version" You can explicitly use this option to exclude core modules of a specific perl version. .IP "allow_test_pms" 4 .IX Item "allow_test_pms" Perl::PrereqScanner::NotQuiteLite::App usually ignores \f(CW\*(C`.pm\*(C'\fR files under \f(CW\*(C`t/\*(C'\fR directory if they are not used in \f(CW\*(C`.t\*(C'\fR files, considering they are some kind of sample files. However, this assumption may be wrong sometimes. If this option is set, it scans all the \f(CW\*(C`.pm\*(C'\fR files under \f(CW\*(C`t/\*(C'\fR directory, considering some of the test modules will use them. If Test::Class (or its equivalent) is used in a test file, this option is implicitly set. .IP "base_dir" 4 .IX Item "base_dir" Perl::PrereqScanner::NotQuiteLite::App usually starts traversing from the current directory. If this option is set, it starts from there. .IP "scan_also" 4 .IX Item "scan_also" Perl::PrereqScanner::NotQuiteLite::App usually scans \f(CW\*(C`.pm\*(C'\fR files in the base dir, \f(CW\*(C`Makefile.PL\*(C'\fR/\f(CW\*(C`Build.PL\*(C'\fR, files under \f(CW\*(C`lib\*(C'\fR, \&\f(CW\*(C`t\*(C'\fR, \f(CW\*(C`bin\*(C'\fR, \f(CWscript(s)\fR directories (and \f(CW\*(C`xt\*(C'\fR, \f(CW\*(C`author\*(C'\fR if asked). If your distribution uses a different file layout, or uses extra directories to keep submodules, you can add (a reference to) a list of paths to scan. .IP "ignore, ignore_re" 4 .IX Item "ignore, ignore_re" Your distribution may have OS-specific modules whose prerequisites can not be installed in other platforms. You can specify (a reference to) a list of files that should not be scanned (with \f(CW\*(C`ignore\*(C'\fR option), or a regular expression that matches the files (with \f(CW\*(C`ignore_re\*(C'\fR option). .IP "features" 4 .IX Item "features" .Vb 8 \& my $app = Perl::PrereqScanner::NotQuiteLite::App\->new( \& features => { \& \*(Aqwindows\*(Aq => { \& description => \*(AqWindows support\*(Aq, \& paths => [\*(Aqlib/Foo/Win32.pm\*(Aq], \& } \& }, \& ); .Ve .Sp Instead of ignoring a set of files, you can use \f(CW\*(C`features\*(C'\fR option to let their prerequisites belong to a specific feature that will not be installed unless asked. However, you are advised to create a separate distribution for the specific feature. .IP "private, private_re" 4 .IX Item "private, private_re" Your distribution may use private modules that are not uploaded to the \s-1CPAN\s0 and thus should not be included in \f(CW\*(C`cpanfile\*(C'\fR. You can specify (a reference to) a list of those private modules (with \&\f(CW\*(C`private\*(C'\fR option) or a regular expression that matches those modules (with \f(CW\*(C`private_re\*(C'\fR option). .IP "use_index, index" 4 .IX Item "use_index, index" Perl::PrereqScanner::NotQuiteLite::App usually lists all the \f(CW\*(C`use\*(C'\fRd modules as prerequisites, but some of them may belong to the same distribution. If an instance of CPAN::Common::Index backend is passed, it is used to dedupe those prerequisites (as long as they are not versioned). .Sp .Vb 7 \& use CPAN::Common::Index::LocalPackage; \& my $index = CPAN::Common::Index::LocalPackage\->new( \& { source => "$ENV{HOME}/minicpan/modules/02packages.details.txt" } \& ); \& my $app = Perl::PrereqScanner::NotQuiteLite::App\->new( \& index => $index, \& ); .Ve .SS "run" .IX Subsection "run" traverses files and directories and returns a CPAN::Meta::Prereqs object that keeps all the requirements/suggestions, without printing anything unless you explicitly pass a \f(CW\*(C`print\*(C'\fR option to \f(CW\*(C`new\*(C'\fR. .SS "index" .IX Subsection "index" returns a CPAN::Common::Index backend object (if any). .SH "AUTHOR" .IX Header "AUTHOR" Kenichi Ishigaki, .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is copyright (c) 2015 by Kenichi Ishigaki. .PP This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.