Flashnux

GNU/Linux man pages

Livre :
Expressions régulières,
Syntaxe et mise en oeuvre :

ISBN : 978-2-7460-9712-4
EAN : 9782746097124
(Editions ENI)

GNU/Linux

Debian 7.3.0

(Wheezy)

Exporter::Lite(3pm)


Exporter::Lite

Exporter::Lite

NAME
SYNOPSIS
DESCRIPTION
Methods
DIAGNOSTICS
BUGS and CAVEATS
AUTHORS
LICENSE
SEE ALSO

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 <schwern@pobox.com>

LICENSE

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html

SEE ALSO

Exporter, Exporter::Simple, UNIVERSAL::exports



Exporter::Lite(3pm)