Modlist(3)            User Contributed Perl Documentation           Modlist(3)

       Devel::Modlist - Perl extension to collect module use information

           perl -d:Modlist

       The Devel::Modlist utility is provided as a means by which to get a
       quick run-down on which libraries and modules are being utilized by a
       given script.

       Just as compiler systems like gcc provide dependancy information via
       switches such as -M, Devel::Modlist is intended to assist script
       authors in preparing dependancy information for potential users of
       their scripts.

       Usage of Devel::Modlist is simple. The primary method of invocation is
       to use the -d option of Perl:

           perl -d:Modlist

       Alternately, one could use the -M option:

           perl -MDevel::Modlist

       In the case of this module, the two are identical save for the amount
       of typing (and option passing, see below). It is not recommended that
       this module be loaded directly by a script via the use keyword, as that
       would cause the dependancy reporting after every invocation until it
       was removed from the code.

       The following options may be specified to the package on the command
       line. Current (as of July 2000) Perl versions (release version up to
       5.6.0) cannot accept options to the -d: flag as with the -M flag. Thus,
       to pass an option one must use:

           perl -MDevel::Modlist=option1[,option2,...]

       Unfortunately, this inhibits the stop option detailed below. To use
       this option, an invocation of:

           perl -d:Modlist -MDevel::Modlist=option1[,option2,...]

       does the trick, as the first invocation puts the interpreter in
       debugging mode (necessary for stop to work) while the second causes the
       options to be parsed and recorded by Devel::Modlist.

       cpan Reduce the resulting list of modules by using the data maintained
            in the local CPAN configuration area. The CPAN module (see the
            CPAN manpage) maintains a very thorough representation of the
            contents of the archive, on a per-module basis.  Using this option
            means that if there are two or more modules that are parts of the
            same distribution, only one will be reported (the one with the
            shortest name). This is useful for generating a minimalist
            dependancy set that can in turn be fed to the CPAN install command
            to ensure that all needed modules are in fact present.

            This is identical to the option above, with the exception that it
            causes the reported output to be the CPAN filename rather than the
            module name in the standard Perl syntax. This can also be fed to
            the CPAN shell, but it can also be used by other front-ends as a
            path component in fetching the requisite file from an archive
            site. Since the name contains the version number, this behaves as
            though noversion (see below) was also set. If both cpan and
            cpandist are set, this option (cpandist) takes precedence. If path
            is also specified, this option again takes precedence.

            Suppress the display of those modules that are a part of the Perl
            core. This is dependant on the Perl private library area not being
            an exact substring of the site-dependant library. The build
            process checks this for you prior to install.

            Suppress the inclusion of version information with the module
            names. If a module has defined its version by means of the
            accepted standard of declaring a variable $VERSION in the package
            namespace, Devel::Modlist finds this and includes it in the report
            by default. Use this option to override that default.

       path Display the path and filename of each module instead of the module
            name. Useful for producing lists for later input to tools such as

       stop Exit before the first actual program line is executed. This
            provides for fetching the dependancy list without actually running
            the full program. This has a drawback: if the program uses any of
            require, eval or other such mechanisms to load libraries after the
            compilation phase, these will not be reported.

       Randy J. Ray <>, using idea and prototype code
       provided by Tim Bunce <>


3rd Berkeley Distribution    perl 5.005, patch 03                   Modlist(3)