NAME
perl5 - Use a Perl 5 group of modules/features


SYNOPSIS
Use a version of Perl and its feature set:
Use a bundled feature set from a perl5
plugin:
Or both:
use
perl5 v14.1 -shiny;
DESCRIPTION
The perl5
module lets you use
a well known set of modules in one command.
It allows people to create plugins like perl5::foo
and perl5::bar
that are sets of useful modules that have been tested together and are known to create joy.
This module, perl5
, is generally the base class to such a plugin.
USAGE
This:
use
perl5-foo;
Is equivalent in Perl to:
The perl5
module takes the first argument in the use
command, and uses it to find a plugin, like perl5::foo
in this case.
perl5::foo
is typically just a subclass of perl5. It invokes a set of modules for its caller.
If you use it with a version, like this:
use
perl5 v14;
It is the same as saying:
If you use perl5
with no arguments, like this:
use
perl5;
It is the same as saying:
use
perl5 v10;
PLUGIN API
This module uses lexically-wrapped-goto-chaining-magic to correctly load a set of modules (including optional version requirements and import options) into the user's code. The API for specifying a perl5 plugin is very simple.
To create a plugin called perl5::foo
that gets called like this:
use
perl5-foo;
Write some code like this:
package
perl5::foo;
our
$VERSION
= 0.12;
# These is the list of modules (with optional version and arguments)
sub
imports {
return
(
strict
=>
warnings
=>
features
=> [
':5.10'
],
SomeModule
=> 0.22,
OtherModule
=> 0.33, [
option1
=> 2],
Module
=> [],
# Don't invoke Module's import() method
);
}
1;
INSPIRATION
This module was inspired by Michael Schwern's perl5i, and the talk he gave about it at the 2010 OSDC in Melbourne. By "inspired" I mean that I was perturbed by Schwern's non-TMTOWTDI attitude towards choosing a standard set of Perl modules for all of us.
THIS IS PERL! THERE ARE NO STANDARDS!
...and I told him so. I also promised that I would show him my feelings in code. Schwern, this is how I feel! (See also: perl5::i)
THANKS
Special thanks to schwern, mstrout, audreyt, rodrigo and jesse for ideas and support.
AUTHOR
Ingy döt Net <ingy@cpan.org>
COPYRIGHT
Copyright 2011-2014. Ingy döt Net.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.