No::Worries::Export - symbol exporting without worries
use No::Worries::Export qw(export_control); sub foo () { ... } our $bar = 42; sub import : method { my($pkg, %exported); $pkg = shift(@_); grep($exported{$_}++, qw(foo $bar)); export_control(scalar(caller()), $pkg, \%exported, @_); }
This module eases symbol exporting by providing a simple yet powerful alternative to the Exporter module.
The symbols that can be imported are defined in a hash (the third argument of export_control()), the key being the symbol name and the value being:
a scalar: indicating a normal symbol
a code reference: to be called at import time
The normal symbols can be functions (such as foo), scalars (<$foo>), arrays (<@foo>) or hashes (<%foo>).
foo
All the normal symbols can be imported at once by using an asterisk in the import code:
use Foo qw(*);
Alternatively, a regular expression can be given to filter what to import:
# import "foo" and all the normal symbols starting with "bar" use Foo qw(foo /^bar/);
The special symbols can be used to execute any code. For instance:
# exporting module our $backend = "stdout"; sub import : method { my($pkg, %exported); $pkg = shift(@_); $exported{syslog} = sub { $backend = "syslog" }; export_control(scalar(caller()), $pkg, \%exported, @_); } # importing code use Foo qw(syslog);
Finally, anything looking like a number will trigger a version check:
use Foo qw(1.2); # will trigger Foo->VERSION(1.2);
See UNIVERSAL for more information on the VERSION() mthod.
This module provides the following function (not exported by default):
control the symbols exported by the module; this should be called from an import method
import
Exporter, No::Worries.
Lionel Cons http://cern.ch/lionel.cons
Copyright (C) CERN 2012-2016
To install No::Worries, copy and paste the appropriate command in to your terminal.
cpanm
cpanm No::Worries
CPAN shell
perl -MCPAN -e shell install No::Worries
For more information on module installation, please visit the detailed CPAN module installation guide.