1Find(3)               User Contributed Perl Documentation              Find(3)
2
3
4

NAME

6       Module::Find - Find and use installed modules in a (sub)category
7

SYNOPSIS

9         use Module::Find;
10
11         # use all modules in the Plugins/ directory
12         @found = usesub Mysoft::Plugins;
13
14         # use modules in all subdirectories
15         @found = useall Mysoft::Plugins;
16
17         # find all DBI::... modules
18         @found = findsubmod DBI;
19
20         # find anything in the CGI/ directory
21         @found = findallmod CGI;
22
23         # set your own search dirs (uses @INC otherwise)
24         setmoduledirs(@INC, @plugindirs, $appdir);
25
26         # not exported by default
27         use Module::Find qw(ignoresymlinks followsymlinks);
28
29         # ignore symlinks
30         ignoresymlinks();
31
32         # follow symlinks (default)
33         followsymlinks();
34

DESCRIPTION

36       Module::Find lets you find and use modules in categories. This can be
37       very useful for auto-detecting driver or plugin modules. You can
38       differentiate between looking in the category itself or in all
39       subcategories.
40
41       If you want Module::Find to search in a certain directory on your
42       harddisk (such as the plugins directory of your software installation),
43       make sure you modify @INC before you call the Module::Find functions.
44

FUNCTIONS

46       "setmoduledirs(@directories)"
47           Sets the directories to be searched for modules. If not set,
48           Module::Find will use @INC. If you use this function, @INC will not
49           be included automatically, so add it if you want it. Set to undef
50           to revert to default behaviour.
51
52       "@found = findsubmod Module::Category"
53           Returns modules found in the Module/Category subdirectories of your
54           perl installation. E.g. "findsubmod CGI" will return
55           "CGI::Session", but not "CGI::Session::File" .
56
57       "@found = findallmod Module::Category"
58           Returns modules found in the Module/Category subdirectories of your
59           perl installation. E.g. "findallmod CGI" will return "CGI::Session"
60           and also "CGI::Session::File" .
61
62       "@found = usesub Module::Category"
63           Uses and returns modules found in the Module/Category
64           subdirectories of your perl installation. E.g. "usesub CGI" will
65           return "CGI::Session", but not "CGI::Session::File" .
66
67           If any module dies during loading, usesub will also die at this
68           point.
69
70       "@found = useall Module::Category"
71           Uses and returns modules found in the Module/Category
72           subdirectories of your perl installation. E.g. "useall CGI" will
73           return "CGI::Session" and also "CGI::Session::File" .
74
75           If any module dies during loading, useall will also die at this
76           point.
77
78       "ignoresymlinks()"
79           Do not follow symlinks. This function is not exported by default.
80
81       "followsymlinks()"
82           Follow symlinks (default behaviour). This function is not exported
83           by default.
84

HISTORY

86       0.01, 2004-04-22
87               Original version; created by h2xs 1.22
88
89       0.02, 2004-05-25
90               Added test modules that were left out in the first version.
91               Thanks to Stuart Johnston for alerting me to this.
92
93       0.03, 2004-06-18
94               Fixed a bug (non-localized $_) by declaring a loop variable in
95               use functions.  Thanks to Stuart Johnston for alerting me to
96               this and providing a fix.
97
98               Fixed non-platform compatibility by using File::Spec.  Thanks
99               to brian d foy.
100
101               Added setmoduledirs and updated tests. Idea shamelessly stolen
102               from ...errm... inspired by brian d foy.
103
104       0.04, 2005-05-20
105               Added POD tests.
106
107       0.05, 2005-11-30
108               Fixed issue with bugfix in PathTools-3.14.
109
110       0.06, 2008-01-26
111               Module::Find now won't report duplicate modules several times
112               anymore (thanks to Uwe Völker for the report and the patch)
113
114       0.07, 2009-09-08
115               Fixed RT#38302: Module::Find now follows symlinks by default
116               (can be disabled).
117
118       0.08, 2009-09-08
119               Fixed RT#49511: Removed Mac OS X extended attributes from
120               distribution
121
122       0.09, 2010-02-26
123               Fixed RT#38302: Fixed META.yml generation (thanks very much to
124               cpanservice for the help).
125
126       0.10, 2010-02-26
127               Fixed RT#55010: Removed Unicode BOM from Find.pm.
128
129       0.11, 2012-05-22
130               Fixed RT#74251: defined(@array) is deprecated under Perl
131               5.15.7.  Thanks to Roman F, who contributed the implementation.
132
133       0.12, 2014-02-08
134               Fixed RT#81077: useall fails in taint mode Thanks to Aran
135               Deltac, who contributed the implementation and test.
136
137               Fixed RT#83596: Documentation doesn't describe behaviour if a
138               module fails to load Clarified documentation for useall and
139               usesub.
140
141               Fixed RT#62923: setmoduledirs(undef) doesn't reset to searching
142               @INC Added more explicit tests.  Thanks to Colin Robertson for
143               his input.
144
145       0.13, 2015-03-09
146               This release contains two contributions from Moritz Lenz: -
147               Link to Module::Pluggable and Class::Factory::Util in "SEE
148               ALSO" - Align package name parsing with how perl does it
149               (allowing single quotes as module separator)
150

DEVELOPMENT NOTES

152       Please report any bugs using the CPAN RT system. The development
153       repository for this module is hosted on GitHub:
154       <http://github.com/crenz/Module-Find/>.
155

SEE ALSO

157       perl, Module::Pluggable, Class::Factory::Util
158

AUTHOR

160       Christian Renz, <crenz@web42.com>
161
163       Copyright 2004-2014 by Christian Renz <crenz@web42.com>. All rights
164       reserved.
165
166       This library is free software; you can redistribute it and/or modify it
167       under the same terms as Perl itself.
168
169
170
171perl v5.30.0                      2019-07-26                           Find(3)
Impressum