NAME

Plugin::Simple - Load plugins from files or modules.

Coverage Statusgg

SYNOPSIS

use Plugin::Simple;

# load a plugin module from a file

@plugins = plugins('/path/to/MyModule.pm');

# load all modules under '__PACKAGE__::Plugin' namespace

my @plugins = plugins();

# load all plugins under a specific namespace

@plugins = plugins('Any::Namespace');

# load a plugin module from a file

@plugins = plugins('/path/to/MyModule.pm');

# load/return only the plugins that can perform specific functions

@plugins = plugins(can => ['foo', 'bar]); # foo and bar

# instead of importing 'plugins()', change the name:

use Simple::Plugin sub_name => 'foo';
@plugins = foo(...);

# do something with the plugins

for my $plugin (@plugins){
    $plugin->plugin_func(@args);
}

DESCRIPTION

There are many plugin modules available on the CPAN, but I wrote this one just for fun. It's very simple, extremely lightweight (core only), and is extremely minimalistic in what it does.

It searches for modules in installed packages or non-installed files, and loads them (without string eval). You can optionally have us return only the plugins that can() perform a specific task.

FUNCTIONS/METHODS

None. We simply install a plugin() function within the namespace of the package that used us. To specify a different sub name, use this module as such: use Plugin::Simple sub_name = 'name_of_sub';>.

AUTHOR

Steve Bertrand, <steveb at cpan.org>

CONTRIBUTING

Any and all feedback and help is appreciated. A Pull Request is the preferred method of receiving changes (https://github.com/stevieb9/p5-plugin-simple), but regular patches through the bug tracker, or even just email discussions are welcomed.

BUGS

https://github.com/stevieb9/p5-plugin-simple/issues

SUPPORT

You can find documentation for this script and module with the perldoc command.

perldoc Plugin::Simple;

SEE ALSO

There are far too many plugin import modules on the CPAN to mention here.

LICENSE AND COPYRIGHT

Copyright 2016 Steve Bertrand.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.