Scroll to navigation

PERL-DEPENDS(1) cvs status - formatter PERL-DEPENDS(1)

NAME

perl-depends - Roughly find out module dependencies from Perl file(s)

SYNOPSIS

  perl-depends [options] FILE [FILE ...]

DESCRIPTION

Find out roughly the modules the program uses. This is based on the idea that Perl evaluates the "use" commands at compile time and stores the loaded module information in the %INC variable. By examining the loaded modules and comparing them against the standard Perl modules, the external module dependencies can be roughly dependencies.

The dependency information can be used to determine what external modules have to be installed before the program can be used.

The target FILE has to be instrumented (a comouting term to inject code) with the dependency checking code. The resulting script is then stored in a temporary file which the user runs.

This program does not run the instrumented files because it cannot know what possible options need to be passed for programs to trigger null behavior. That is, something that doesn't actually involve executing the script for real. Such options might include --version, --dry-run, or options like --generate-syntax-error-now, or invalid arguments to make the program stop with an error. The user is more likely to know the best way of running the instrumented files.

An example of output: the external module dependency here is 'Regexp::Common' and the rest of them can be ignored.

    Regexp::Common                 Regexp/Common.pm
    Regexp::Common::CC             Regexp/Common/CC.pm
    ...

OPTIONS

-e, --extension=EXT
Use extension EXT for instrumented files. The default is ".tmp".
-h, --help
Print text help
--help-html
Print help in HTML format.
--help-man
Print help in manual page man(1) format.
-v, --verbose [LEVEL]
Print informational messages. Increase numeric LEVEL for more verbosity.
-V, --version
Print contact and version information.

EXAMPLES

Instrument a file, run it to see the results and delete instrumentated script:

    perl-depends file.pl
    perl file.pl.tmp <followed by whatever args the program needs>
    rm *.tmp

TROUBLESHOOTING

None.

ENVIRONMENT

None.

FILES

None.

EXIT STATUS

This program's exit status is not defined.

The instrumented program's exit status is 1 if external modules are displayed and 0 if no external modules are found.

DEPENDENCIES

Uses standard Perl modules.

BUGS AND LIMITATIONS

If the target program's code conditionally loads mor perl modules during execution, you must run the program for real to have those modules detected.

SEE ALSO

cpan(1)

AVAILABILITY

https://github.com/jaalto/project--perl-depends

AUTHOR

Jari Aalto <jari.aalto@cante.net>

LICENSE

Copyright (C) 2009-2016 Jari Aalto <jari.aalto@cante.net>

This program is free software; you can redistribute and/or modify program under the terms of GNU General Public license either version 2 of the License, or (at your option) any later version. See <http://www.gnu.org/licenses/>.

2016-10-29 perl v5.24.1