pm_which

PM_WHICH(1p)          User Contributed Perl Documentation         PM_WHICH(1p)

NAME
       pm_which - find installed modules

SYNOPSIS
           pm_which [ options ] module(s)

           Returns the path to the given module(s)

   OPTIONS
           -q, --quiet     Just print paths
           -p, --paths     Just convert the module name into a relative path
           -a, --all       Print all paths, not just the first one found
           -n, --namespace Print all modules in the given namespace
           -m              Only print module names, not paths
           -V              Show module version
           -I libpath      Add a path to search (like perl -I)
           -d, --dump      Dump paths that would be searched (@INC by default)
           -h, --help      Print this message
           -v, --version   Print version information
           -               Read modules from stdin, one per line

DESCRIPTION
       This tool reports the locations of installed perl modules.

       By default it lists the location of each specified module that would be
       loaded by require.

OPTION DETAILS
   quiet
       Under quiet mode, module names are suppressed and missing modules are
       not reported.

       Normal output:

           $ pm_which Module::One Module::Two Missing::Module
           Module::One     - /path/to/Module/One.pm
           Module::Two     - /path/to/Module/Two.pm
           Missing::Module - not found

       Under --quiet:

           $ pm_which -q Module::One Module::Two Missing::Module
           /path/to/Module/One.pm
           /path/to/Module/Two.pm

   paths
       In "paths" mode, each module is simply converted into a relative file
       path. This is possible even when the module is not installed.

           $ pm_which -p Missing::Module
           Missing/Module.pm

   all
       When the "all" switch is specified, all installed modules will be
       reported, not just the first one. This is useful for determining when
       there is a module installed in multiple locations.

           $ pm_which -a MyModule
           /path/to/MyModule.pm
           /home/me/perl/MyModule.pm

   namespace
       Arguments are taken as namespaces to search under.

           $ pm_which -n MyModule
           MyModule            - /path/to/MyModule.pm
           MyModule::Foo       - /path/to/MyModule/Foo.pm
           MyModule::Foo::Bar  - /path/to/MyModule/Foo/Bar.pm

   -m
       Disables printing of module paths. This is only really useful in
       conjunction with --namespace.

           $ pm_which -nm MyModule
           MyModule
           MyModule::Foo
           MyModule::Foo::Bar

   -V
       Prints the version of each module, according to ExtUtils::MakeMaker.

           $ pm_which -V MyModule
           MyModule - /path/to/MyModule.pm [ 1.00 ]

           $ pm_which -Vnm MyModule
           MyModule [ 1.00 ]
           MyModule::Foo [ 0.01 ]
           MyModule::Foo::Bar [ undef ]

   dump
       Dumps the paths that would be searched and exits. This is @INC modified
       by any -I switches.

           $ pm_which --dump
           /usr/lib/perl5/site_perl/5.8.6
           /usr/lib/perl5/vendor_perl/5.8.6
           ...

           $ pm_which -I lib --dump -I blib/lib
           lib
           blib/lib
           /usr/lib/perl5/site_perl/5.8.6
           ...

   version
       Prints the version number of the script, plus the version and path of
       Module::Util that was loaded.

EXIT CODES
       o   0 - Everything was OK

       o   1 - Initialisation failed (bad switches?)

       o   2 - Some modules were not installed

SEE ALSO
       This utility comes with Module::Util.

AUTHOR
       Matt Lawrence <mattlaw@cpan.org>

perl v5.26.0                      2017-08-01                      PM_WHICH(1p)
Man Pages Copyright Respective Owners. Site Copyright (C) 1994 - 2025 Hurricane Electric. All Rights Reserved.