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
148               Link to Module::Pluggable and Class::Factory::Util in "SEE
149               ALSO"
150
151               Align package name parsing with how perl does it (allowing
152               single quotes as module separator)
153
154               Also, added a test for meta.yml
155
156       0.14, 2019-12-25
157               A long overdue update. Thank you for the many contributions!
158
159               Fixed RT#99055: Removed file readability check (pull request
160               contributed by Moritz Lenz)
161
162               Now supports @INC hooks (pull request contributed by Graham
163               Knop)
164
165               Now filters out filenames starting with a dot (pull request
166               contributed by Desmond Daignault)
167
168               Now uses strict (pull request contributed by Shlomi Fish)
169
170               Fixed RT#122016: test/ files show up in metacpan (bug report
171               contributed by Karen Etheridge)
172
173       0.15, 2019-12-26
174               Fixed RT#127657 (bug report contributed by Karen Etheridge):
175               Module::Find now uses @ModuleDirs (if specified) for loading
176               modules. Previously, when using setmoduledirs() to set an array
177               of directories that did not contain @INC, Module::Find would
178               find the modules correctly, but load them from @INC.
179
180       0.16, 2022-08-01
181               Fixes an issue where symlink tests failed on systems that do
182               not support creation of symlinks.  The issue appears on Windows
183               systems due to changed behaviour in "File::Find" described in
184               perl5/issue #19995 <https://github.com/Perl/perl5/issues/19995>
185               Symlink tests were previously skipped if symlink() is not
186               available, and now also if creation of a symlink is not
187               possible.
188
189               Fixes issue #9 <https://github.com/crenz/Module-Find/issues/9>.
190               Note that on Windows system, the patch to "File::Find" from
191               perl5/PR #20008 <https://github.com/Perl/perl5/pull/20008> will
192               be required for proper operation.
193

DEVELOPMENT NOTES

195       The development repository for this module is hosted on GitHub:
196       <http://github.com/crenz/Module-Find/>. Please report any bugs by
197       opening an issue there.
198

SEE ALSO

200       perl, Module::Pluggable, Class::Factory::Util
201

AUTHOR

203       Christian Renz, <crenz@web42.com>
204
206       Copyright 2004-2022 by Christian Renz <crenz@web42.com>. All rights
207       reserved.
208
209       This library is free software; you can redistribute it and/or modify it
210       under the same terms as Perl itself.
211
212
213
214perl v5.36.0                      2023-01-20                           Find(3)
Impressum