SCAN-PE...-NQLITE(1p)

πŸ’– scan-perl-prereqs-nqlite πŸ’–

okay bestie, listen. this is the user-contributed Perl documentation for scan-perl-prereqs-nqlite, and it's genuinely one of the most useful little gremlins in your toolchain. let's get into it 🫢


✨ NAME ✨

scan-perl-prereqs-nqlite β€” your new bestie that figures out what your Perl project actually depends on πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

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

🌸 DESCRIPTION 🌸

so here's the tea, bestie. scan-perl-prereqs-nqlite walks through a bunch of files and subdirectories in your current directory using File::Find, and it scoops up every .pl, .PL, .pm, .t, and .psgi file it can find β€” plus literally every file chilling in the scripts? and bin directories β€” and then prints out one single combined list of prerequisites. one list. no chaos. and that list is specifically designed to be piped straight into cpanm or whatever other similar tool you're obsessed with. it's giving pipeline-ready ✨

you can also hand it files and/or directories to narrow down what gets scanned. but ngl, heads up: in that case scan-perl-prereqs-nqlite might fail to exclude modules that should belong to the same distribution. so like, know the tradeoff. πŸ’€


πŸ‘‘ OPTIONS πŸ‘‘

okay queen, here's the full menu. every single one, no skips πŸ“

  • version β€” shows the version. that's it, that's the whole job.
  • help β€” shows this help. hi, you're reading it.
  • json β€” prints prerequisites as a JSON, but only if JSON::PP is installed. no JSON::PP, no JSON, periodt.
  • cpanfile, save_cpanfile β€” prints prerequisites as a cpanfile, but only if Module::CPANfile is installed. and if safe-cpanfile is set, it will actually create or update your cpanfile instead of just printing. slay.
  • suggests β€” prints suggestions too, aka the modules that got used inside an eval. the shy ones. πŸ™ˆ
  • develop β€” prints requirements/suggestions for developers as well, meaning the used modules hanging out in the xt and author directories.
  • perl_minimum_version β€” may modify the required perl version if new language features are being used without the required perl version being declared explicitly. it's the friend who notices you forgot to say something out loud.
  • exclude_core β€” ignores prerequisites that are bundled with Perl (of 5.008001 by default). this one needs Module::CoreList version 2.99 or above, so check before you commit.
  • perl_version β€” ignores prerequisites bundled with Perl of a specific version. and just so you know, this implies exclude-core as well.
  • allow_test_pms β€” prints requirements/suggestions in .pm files placed under the t/ directory even if they're not directly used from .t files. and btw, if the Test::Class family is used under t/, this option is implicitly set. sneaky little default, love that for us.
  • base_dir β€” sets the base directory from where scan-perl-prereqs-nqlite starts traversing files and directories.
  • ignore β€” sets a list of paths scan-perl-prereqs-nqlite should ignore. super 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, the ignore options are ignored. (yes, the override ignored the ignorers, iconic πŸ’…)
  • optional β€” sets a list of paths scan-perl-prereqs-nqlite should ignore. 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, the optional options are ignored.
  • private β€” sets a list of modules scan-perl-prereqs-nqlite should consider private β€” meaning they're not uploaded to the CPAN. and here's the plot twist: contrary to the ignore option, which makes the scanner skip scanning the file, this option lets the scanner scan files and then excludes matched prerequisites afterwards. different strategy, same goal, we love options ✨
  • private_re β€” you can also specify a regexp instead of a list of modules. if this is set, the private options are ignored.
  • scan_also β€” sets a list of extra paths scan-perl-prereqs-nqlite should also scan. perfect for when your application/distribution uses an untraditional file layout. go off, weird file layout.
  • feature β€” specify a feature name, a description, and matching paths. like so:
scan-perl-prereqs-nqlite \
  --feature name:description:lib/My/Plugin/For/SpecificOS \
  --feature name:description:web/lib,web/bin
  • use_index β€” you can specify an index name of the CPAN::Common::Index module (such as Mirror or MetaDB) so it doesn't list all the modules of a required distribution. less noise, more vibe check.
  • 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. but β€” and this is a big but, bestie β€” 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. don't skip that step, it's giving stale-data energy 😭
  • parser β€” sets a list of parsers (or parser tags) scan-perl-prereqs-nqlite uses. if this option isn't set, the scanner uses :installed parsers by default.
  • inc β€” adds a list of additional @INC paths scan-perl-prereqs-nqlite looks through for private parsers.
  • verbose β€” prints verbose messages. for when you need the commentary track πŸ”₯

πŸ¦‹ AUTHOR πŸ¦‹

Kenichi Ishigaki, <ishigaki@cpan.org> β€” absolute legend, we stan πŸ‘‘


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. so go forth and remix, bestie 🌈


and that's the whole page!! this was User Contributed Perl Documentation for scan-perl-prereqs-nqlite, generated for perl v5.40.1 on 2026-04-21. go scan some prereqs, you've got this πŸŽ€βœ¨πŸ’–

πŸ“¦ where this page comes from