NAME
extract_modules - determine which Perl modules a given file uses
SYNOPSIS
Given Perl files, extract and report the Perl modules included with use or require.
# print a verbose text listing
$ extract_modules filename [...]
Modules required by examples/extract_modules:
- Getopt::Std (first released with Perl 5)
- Module::CoreList (first released with Perl 5.008009)
- Pod::Usage (first released with Perl 5.006)
- strict (first released with Perl 5)
- warnings (first released with Perl 5.006)
5 module(s) in core, 0 external module(s)
# print a succint list, one module per line
$ extract_modules -l filename [...]
Getopt::Std
Module::CoreList
Pod::Usage
open
strict
warnings
# print a succinct list, modules separated by null bytes
# you might like this with xargs -0
$ extract_modules -0 filename [...]
Getopt::StdModule::CoreListPod::Usageopenstrictwarnings
# print the modules list as JSON
$ extract_modules -j filename [...]
[
"Getopt::Std",
"Module::CoreList",
"Pod::Usage",
"open",
"strict",
"warnings"
]
# print the modules list as a basic cpanfile
# https://metacpan.org/pod/cpanfile
$ extract_modules -c filename [...]
requires 'Getopt::Std', '1.23';
requires 'Module::CoreList';
requires 'Pod::Usage';
requires 'open';
requires 'strict';
requires 'warnings';
DESCRIPTION
This script does not execute the code in the files it examines. It uses the Module::Extract::Use or Module::ExtractUse modules which statically analyze the source without compiling or running it. These modules cannot discover modules loaded dynamically through a string eval.
Command-line options
-c cpanfile output
-e exclude core modules
-j JSON output
-l succint list, one module per line
-0 succint list, modules null separated (for xargs -0)
AUTHORS
Jonathan Yu <frequency@cpan.org>
brian d foy <bdfoy@cpan.org>
COPYRIGHT & LICENSE
Copyright © 2009-2024, brian d foy <briandfoy@pobox.com>. All rights reserved.
You can use this script under the same terms as Perl itself.