Module::Locate.3pm

Langue: en

Autres versions - même langue

Version: 2005-07-02 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

NAME

Module::Locate - locate modules in the same fashion as "require" and "use"

SYNOPSIS

   use Module::Locate qw/ locate get_source /;
 
   add_plugin( locate "This::Module" );
   eval 'use strict; ' . get_source('legacy_code.plx');
 
 

DESCRIPTION

Using "locate()", return the path that "require" would find for a given module or filename (it can also return a filehandle if a reference in @INC has been used). This means you can test for the existence, or find the path for, modules without having to evaluate the code they contain.

This module also comes with accompanying utility functions that are used within the module itself (except for "get_source") and are available for import.

FUNCTIONS

import
Given function names, the appropriate functions will be exported into the caller's package.

If ":all" is passed then all subroutines are exported.

If "Global => BOOL" is passed, then the results for module searches i.e using "locate", will also be stored in %INC, like "require". This is on by default.

If "Cache => BOOL" is passed, then every subsequent search for a module will just use the path stored in %INC, as opposed to performing another search. This is off by default.

locate
Given a module name as a string (in standard perl bareword format) locate the path of the module. If called in a scalar context the first path found will be returned, if called in a list context a list of paths where the module was found. Also, if references have been placed in @INC then a filehandle will be returned, as defined in the "require" documentation. An empty "return" is used if the module couldn't be located.

As of version 1.7 a filename can also be provided to further mimic the lookup behaviour of "require"/"use".

get_source
When provided with a package name, retrieve the source of the module that is found.
acts_like_fh
Given a scalar, check if it behaves like a filehandle. Firstly it checks if it is a bareword filehandle, then if it inherits from "IO::Handle" and lastly if it overloads the "<>" operator. If this is missing any other standard filehandle behaviour, please send me an e-mail.
mod_to_path
Given a module name convert it to a relative path e.g "Foo::Bar" would become "Foo/Bar.pm".
is_mod_loaded
Given a module name (like "locate()"), return true if the module has been loaded (i.e exists in the %INC hash).
is_pkg_loaded
Given a package name (like "locate()"), check if the package has an existing symbol table loaded (checks by walking the %main:: stash).

BUGS

No known bugs yet, but if you find any, please report them at:

http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Module-Locate <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Module-Locate>

AUTHOR

Dan Brook "<cpan@broquaint.com>"

SEE ALSO

perl, "use", "require"