Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

exporter::lite(3pm) [debian man page]

Exporter::Lite(3pm)					User Contributed Perl Documentation				       Exporter::Lite(3pm)

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 perl v5.10.0 2006-11-11 Exporter::Lite(3pm)

Check Out this Related Man Page

Test::Builder::Module(3pm)				 Perl Programmers Reference Guide				Test::Builder::Module(3pm)

NAME
Test::Builder::Module - Base class for test modules SYNOPSIS
# Emulates Test::Simple package Your::Module; my $CLASS = __PACKAGE__; use base 'Test::Builder::Module'; @EXPORT = qw(ok); sub ok ($;$) { my $tb = $CLASS->builder; return $tb->ok(@_); } 1; DESCRIPTION
This is a superclass for Test::Builder-based modules. It provides a handful of common functionality and a method of getting at the underlying Test::Builder object. Importing Test::Builder::Module is a subclass of Exporter which means your module is also a subclass of Exporter. @EXPORT, @EXPORT_OK, etc... all act normally. A few methods are provided to do the "use Your::Module tests =" 23> part for you. import Test::Builder::Module provides an import() method which acts in the same basic way as Test::More's, setting the plan and controlling exporting of functions and variables. This allows your module to set the plan independent of Test::More. All arguments passed to import() are passed onto "Your::Module->builder->plan()" with the exception of "import =>[qw(things to import)]". use Your::Module import => [qw(this that)], tests => 23; says to import the functions this() and that() as well as set the plan to be 23 tests. import() also sets the exported_to() attribute of your builder to be the caller of the import() function. Additional behaviors can be added to your import() method by overriding import_extra(). import_extra Your::Module->import_extra(@import_args); import_extra() is called by import(). It provides an opportunity for you to add behaviors to your module based on its import list. Any extra arguments which shouldn't be passed on to plan() should be stripped off by this method. See Test::More for an example of its use. NOTE This mechanism is VERY ALPHA AND LIKELY TO CHANGE as it feels like a bit of an ugly hack in its current form. Builder Test::Builder::Module provides some methods of getting at the underlying Test::Builder object. builder my $builder = Your::Class->builder; This method returns the Test::Builder object associated with Your::Class. It is not a constructor so you can call it as often as you like. This is the preferred way to get the Test::Builder object. You should not get it via "Test::Builder->new" as was previously recommended. The object returned by builder() may change at runtime so you should call builder() inside each function rather than store it in a global. sub ok { my $builder = Your::Class->builder; return $builder->ok(@_); } perl v5.18.2 2014-01-06 Test::Builder::Module(3pm)
Man Page