Exporter::Lite - Lightweight exporting of variables
# Just like Exporter.
@EXPORT = qw($This That);
@EXPORT_OK = qw(@Left %Right);
# Meanwhile, in another piece of code!
use Foo; # exports $This and &That.
This is an alternative to Exporter intended to provide a lightweight subset of its functionality. It supports import(), @EXPORT and @EXPORT_OK and not a whole lot else.
Unlike Exporter, it is not necessary to inherit from Exporter::Lite (ie. no @ISA = qw(Exporter::Lite) mantra). Exporter::Lite simply exports its import() function. This might be called a "mix-in".
@ISA = qw(Exporter::Lite)
Setting up a module to export its variables and functions is simple:
@EXPORT = qw($Foo bar);
now when you use My::Module, $Foo and bar() will show up.
In order to make exporting optional, use @EXPORT_OK.
@EXPORT_OK = qw($Foo bar);
when My::Module is used, $Foo and bar() will not show up. You have to ask for them. use My::Module qw($Foo bar).
use My::Module qw($Foo bar)
Export::Lite has one public method, import(), which is called automaticly when your modules is use()'d.
In normal usage you don't have to worry about this at all.
Works just like Exporter::import() excepting it only honors @Some::Module::EXPORT and @Some::Module::EXPORT_OK.
The given @symbols are exported to the current package provided they are in @Some::Module::EXPORT or @Some::Module::EXPORT_OK. Otherwise an exception is thrown (ie. the program dies).
If @symbols is not given, everything in @Some::Module::EXPORT is exported.
Attempted to import a symbol which is not in @EXPORT or @EXPORT_OK.
Attempted to import a symbol of an unknown type (ie. the leading $@% salad wasn't recognized).
Its not yet clear if this is actually any lighter or faster than Exporter. I know its at least on par.
OTOH, the docs are much clearer and not having to say @ISA = qw(Exporter) is kinda nice.
@ISA = qw(Exporter)
Michael G Schwern <email@example.com>
To install Exporter::Lite, copy and paste the appropriate command in to your terminal.
perl -MCPAN -e shell
For more information on module installation, please visit the detailed CPAN module installation guide.