Neil Bowers > Module-Path-0.13 > Module::Path

Download:
Module-Path-0.13.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: 0.13   Source  

NAME ^

Module::Path - get the full path to a locally installed module

SYNOPSIS ^

 use Module::Path 'module_path';
 
 $path = module_path('Test::More');
 if (defined($path)) {
   print "Test::More found at $path\n";
 } else {
   print "Danger Will Robinson!\n";
 }

DESCRIPTION ^

Module::Path provides a single function, module_path(), which will find where a module is installed locally.

It works by looking in all the directories in @INC for an appropriately named file:

I wrote this module because I couldn't find an alternative which dealt with the points listed above, and didn't pull in what seemed like too many dependencies to me.

The distribution for Module::Path includes the mpath script, which lets you get the path for a module from the command-line:

 % mpath Module::Path

The module_path() function will also cope if the module name includes .pm; this means you can pass a partial path, such as used as the keys in %INC:

  module_path('Test/More.pm') eq $INC{'Test/More.pm'}

The above is the basis for one of the tests.

BUGS ^

Obviously this only works where the module you're after has its own .pm file. If a file defines multiple packages, this won't work.

This also won't find any modules that are being loaded in some special way, for example using a code reference in @INC, as described in "require" in "perlfunc".

SEE ALSO ^

There are a number of other modules on CPAN which provide the same or similar functionality: App::whichpm, Class::Inspector, Module::Data, Module::Filename, Module::Finder, Module::Info, Module::Locate, Module::Mapper, Module::Metadata, Module::Runtime, Module::Util, and Path::ScanINC.

I've written a review of all such modules that I'm aware of:

http://neilb.org/reviews/module-path.html

Module::Path was written to be fast, portable, and have a low number of core-only runtime dependencies. It you only want to look up the path to a module, it's a good choice.

If you want more information, such as the module's version, what functions are provided, etc, then start by looking at Module::Info, Module::Metadata, and Class::Inspector.

The following scripts can also give you the path: perldoc, whichpm.

REPOSITORY ^

https://github.com/neilbowers/Module-Path

AUTHOR ^

Neil Bowers <neilb@cpan.org>

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2012 by Neil Bowers <neilb@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: