- NAME
- SYNOPSIS
- DESCRIPTION
- OPTIONS
- NOTES

# NAME

gen-mods-list.pl - a script to gather list of packages require'd or use'd directly, or list of packages exported by the Perl code.

# SYNOPSIS

gen-mods-list.pl [ -h ] | [ -l|--listpackages ] [ -p|--perl ] srcfiles..

# DESCRIPTION

This script extracts either names of packages directly require'd or use'd by the set of Perl source files, or (if -l commandline option specified) names of packages defined by the set of Perl source files. The names of packages are printed to stdout, each line being either just name of package (e.g. `Getopt::Long`) or (if -p commandline option specified) a full perl `use` statement (e.g. `{ use Getopt::Long; }`).

This script is useful for packing Perl code protected using Stunnix Perl-Obfus into standalone executable using tools like PAR toolkit or like Perl2Exe; such tools need a way to compute set of modules the code depends on - and since they fail to compute the set of dependencies of protected code, this utility should be used to extract names of all dependencies. Most recommended approach is extracting names of dependencies using -p commandline switch - it will produce perl program that does nothing but use's all dependencies; such produced perl should be included as-is along your protected code. Stunnix Perl Web Server and Project Manager were packaged as standalone executable using exactly this approach.

# OPTIONS

-l
  Instructs to gather names of packages defined by the set of files (by use of `package` keyword only) rather than names of packages require'd or use'd.

-p
  Instructs to output list of packages as a set of 'use' statements, e.g. `{ use Getopt::Long;}`

# NOTES

Perl 5.8.x is required to run this utility; Perl 5.6.x and below are not supported.