NAME
Module::Collect - Collect sub-modules in directories
SYNOPSIS
use
Module::Collect;
my
$collect
= Module::Collect->new(
path
=>
'/foo/bar/plugins'
,
prefix
=>
'MyApp::Plugin'
,
# optional
pattern
=>
'*.pm'
,
# optional
multiple
=> 1,
# optional, see t/06_multiple.t
);
my
@modules
= @{
$collect
->modules };
for
my
$module
(
@modules
) {
$module
->path;
# package fuke oatg
$module
->
package
;
# package name
$module
->
require
;
# require package
my
$obj
=
$module
->new;
# aliae for $module->package->new
}
DESCRIPTION
Module::Collect finds sub-modules, or plugins in directories.
The following directory composition
$ ls -R t/plugins
t/plugins:
empty.pm foo foo.pm pod.pm withcomment.pm withpod.pm
t/plugins/foo:
bar.pm baz.plugin
The following code is executed
use
strict;
use
warnings;
use
Module::Collect;
use
Perl6::Say;
my
$c
= Module::Collect->new(
path
=>
't/plugins'
);
for
my
$module
(@{
$c
->modules }) {
say
$module
->
package
.
', '
,
$module
->path;
$module
->
require
;
}
results
MyApp::Foo, t/plugins/foo.pm
With::Comment, t/plugins/withcomment.pm
With::Pod, t/plugins/withpod.pm
MyApp::Foo::Bar, t/plugins/foo/bar.pm
AUTHOR
Kazuhiro Osawa <ko@yappo.ne.jp>
lopnor
gfx
mattn
INSPIRED BY
SEE ALSO
REPOSITORY
Module::Collect is git repository is hosted at http://github.com/yappo/p5-Module-Collect. patches and collaborators are welcome.
LICENSE
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.