NAME Module::Path::More - Get path to locally installed Perl module VERSION This document describes version 0.25 of Module::Path::More (from Perl distribution Module-Path-More), released on 2014-12-26. SYNOPSIS use Module::Path::More qw(module_path pod_path); $path = module_path(module=>'Test::More'); if (defined($path)) { print "Test::More found at $path\n"; } else { print "Danger Will Robinson!\n"; } # find all found modules, as well as .pmc and .pod files @path = module_path(module=>'Foo::Bar', all=>1, find_pmc=>1, find_pod=>1); # just a shortcut for module_path(module=>'Foo', # find_pm=>0, find_pmc=>0, find_pod=>1); $path = pod_path(module=>'Foo'); DESCRIPTION Module::Path::More provides a function, "module_path()", which will find where a module (or module prefix, or .pod file) is installed locally. (There is also another function "pod_path()" which is just a convenience wrapper.) It works by looking in all the directories in @INC for an appropriately named file. If module is "Foo::Bar", will search for "Foo/Bar.pm", "Foo/Bar.pmc" (if "find_pmc" argument is true), "Foo/Bar" directory (if "find_prefix" argument is true), or "Foo/Bar.pod" (if "find_pod" argument is true). Caveats: 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. FUNCTIONS module_path(%args) -> array|str Get path to locally installed Perl module. Search @INC (reference entries are skipped) and return path(s) to Perl module files with the requested name. This function is like the one from "Module::Path", except with a different interface and more options (finding all matches instead of the first, the option of not absolutizing paths, finding ".pmc" & ".pod" files, finding module prefixes). Arguments ('*' denotes required arguments): * abs => *bool* (default: 0) Whether to return absolute paths. * all => *bool* (default: 0) Return all results instead of just the first. * find_pm => *bool* (default: 1) Whether to find .pm files. * find_pmc => *bool* (default: 1) Whether to find .pmc files. * find_pod => *bool* (default: 0) Whether to find .pod files. * find_prefix => *bool* (default: 0) Whether to find module prefixes. * module* => *str* Module name to search. Return value: (any) pod_path(%args) -> array|str Get path to locally installed POD. This is a shortcut for: module_path(%args, find_pm=>0, find_pmc=>0, find_pod=>1, find_prefix=>0) Arguments ('*' denotes required arguments): * abs => *bool* (default: 0) Whether to return absolute paths. * all => *bool* (default: 0) Return all results instead of just the first. * module* => *str* Module name to search. Return value: (any) SEE ALSO Module::Path. Module::Path::More is actually a fork of Module::Path. Module::Path::More contains features that are not (or have not been accepted) in the original module, namely: finding all matches instead of the first found match, and finding ".pmc/.pod" in addition to .pm files. Note that the interface is different (Module::Path::More accepts hash/named arguments) so the two modules are not drop-in replacements for each other. Also, note that by default Module::Path::More does not do an "abs_path()" to each file it finds. I think this module's choice (not doing abs_path) is a more sensible default, because usually there is no actual need to do so and doing abs_path() or resolving symlinks will sometimes fail or expose filesystem quirks that we might not want to deal with at all. However, if you want to do abs_path, you can do so by setting "abs" option to true. Command-like utility is not included in this distribution, unlike mpath in "Module-Path". However, you can use pmpath from "App-PMUtils" which uses this module. References: * * * * https://rt.cpan.org/Public/Bug/Display.html?id=100979 HOMEPAGE Please visit the project's homepage at . SOURCE Source repository is at . BUGS Please report any bugs or feature requests on the bugtracker website When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. AUTHOR perlancar COPYRIGHT AND LICENSE This software is copyright (c) 2014 by perlancar@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.