Authors may find this useful, either in their own modules or in
helping out a new author who's having some trouble understanding the
Exporter docs.
http://www.pobox.com/~src/Exporter-Lite-0.01.tar.gz
NAME
Exporter::Lite - Lightweight exporting of variables
SYNOPSIS
package Foo;
use Exporter::Lite;
# Just like Exporter.
@EXPORT = qw($This That);
@EXPORT_OK = qw(@Left %Right);
# Meanwhile, in another piece of code!
package Bar;
use Foo; # exports $This and &That.
DESCRIPTION
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".
Setting up a module to export its variables and functions is simple:
package My::Module;
use Exporter::Lite;
@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.
package My::Module;
use Exporter::Lite;
@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)".
Methods
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.
import
Some::Module->import;
Some::Module->import(@symbols);
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.
DIAGNOSTICS
'"%s" is not exported by the %s module'
Attempted to import a symbol which is not in @EXPORT or @EXPORT_OK.
'Can\'t export symbol: %s'
Attempted to import a symbol of an unknown type (ie. the leading $@%
salad wasn't recognized).
BUGS and CAVEATS
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.
AUTHORS
Michael G Schwern <[EMAIL PROTECTED]>
SEE ALSO
Exporter, Exporter::Simple, UNIVERSAL::exports
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
Summer sun beats down
I sigh and wait for winter
warm paste enemas.
-- mjd