NAME
Module::Find - Find and use installed modules in a (sub)category
SYNOPSIS
use Module::Find;
# use all modules in the Plugins/ directory
@found = usesub Mysoft::Plugins;
# use modules in all subdirectories
@found = useall Mysoft::Plugins;
# find all DBI::... modules
@found = findsubmod DBI;
# find anything in the CGI/ directory
@found = findallmod CGI;
# set your own search dirs (uses @INC otherwise)
setmoduledirs(@INC, @plugindirs, $appdir);
# not exported by default
use Module::Find qw(ignoresymlinks followsymlinks);
# ignore symlinks
ignoresymlinks();
# follow symlinks (default)
followsymlinks();
DESCRIPTION
Module::Find lets you find and use modules in categories. This can be very useful for auto-detecting driver or plugin modules. You can differentiate between looking in the category itself or in all subcategories.
If you want Module::Find to search in a certain directory on your harddisk (such as the plugins directory of your software installation), make sure you modify @INC
before you call the Module::Find functions.
FUNCTIONS
setmoduledirs(@directories)
-
Sets the directories to be searched for modules. If not set, Module::Find will use @INC. If you use this function, @INC will not be included automatically, so add it if you want it. Set to undef to revert to default behaviour.
@found = findsubmod Module::Category
-
Returns modules found in the Module/Category subdirectories of your perl installation. E.g.
findsubmod CGI
will returnCGI::Session
, but notCGI::Session::File
. @found = findallmod Module::Category
-
Returns modules found in the Module/Category subdirectories of your perl installation. E.g.
findallmod CGI
will returnCGI::Session
and alsoCGI::Session::File
. @found = usesub Module::Category
-
Uses and returns modules found in the Module/Category subdirectories of your perl installation. E.g.
usesub CGI
will returnCGI::Session
, but notCGI::Session::File
. @found = useall Module::Category
-
Uses and returns modules found in the Module/Category subdirectories of your perl installation. E.g.
useall CGI
will returnCGI::Session
and alsoCGI::Session::File
. ignoresymlinks()
-
Do not follow symlinks. This function is not exported by default.
followsymlinks()
-
Follow symlinks (default behaviour). This function is not exported by default.
HISTORY
- 0.01, 2004-04-22
-
Original version; created by h2xs 1.22
- 0.02, 2004-05-25
-
Added test modules that were left out in the first version. Thanks to Stuart Johnston for alerting me to this.
- 0.03, 2004-06-18
-
Fixed a bug (non-localized $_) by declaring a loop variable in use functions. Thanks to Stuart Johnston for alerting me to this and providing a fix.
Fixed non-platform compatibility by using File::Spec. Thanks to brian d foy.
Added setmoduledirs and updated tests. Idea shamelessly stolen from ...errm... inspired by brian d foy.
- 0.04, 2005-05-20
-
Added POD tests.
- 0.05, 2005-11-30
-
Fixed issue with bugfix in PathTools-3.14.
- 0.06, 2008-01-26
-
Module::Find now won't report duplicate modules several times anymore (thanks to Uwe Völker for the report and the patch)
- 0.07, 2009-09-08
-
Fixed RT#38302: Module::Find now follows symlinks by default (can be disabled).
- 0.08, 2009-09-08
-
Fixed RT#49511: Removed Mac OS X extended attributes from distribution
- 0.09, 2010-02-26
-
Fixed RT#38302: Fixed META.yml generation (thanks very much to cpanservice for the help).
DEVELOPMENT NOTES
Please report any bugs using the CPAN RT system. The development repository for this module is hosted on GitHub: http://github.com/crenz/Module-Find/.
SEE ALSO
AUTHOR
Christian Renz, <crenz@web42.com>
COPYRIGHT AND LICENSE
Copyright 2004-2008 by Christian Renz <crenz@web42.com>. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.