logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

pm_which - find installed modules

Author

       Matt Lawrence <mattlaw@cpan.org>

perl v5.36.0                                       2022-10-13                                       PM_WHICH(1p)

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.

Exit Codes

       •   0 - Everything was OK

       •   1 - Initialisation failed (bad switches?)

       •   2 - Some modules were not installed

Name

       pm_which - find installed modules

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.

See Also

       This utility comes with Module::Util.

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

See Also