NAME
ExportAbove - set sub or var names into @EXPORT* automatically
SYNOPSIS
package SomeModule;
use Exporter;
use vars qw(@ISA);
@ISA = qw(Exporter);
$qux = ...; # NOT export
sub foo {...} # NOT export
no ExportAbove;
@quux = (...); # into @EXPORT
sub bar {...} # into @EXPORT
use ExportAbove;
%quuux = (...); # into %EXPORT_TAGS and @EXPORT_OK
sub baz {...} # into %EXPORT_TAGS and @EXPORT_OK
use ExportAbove qw(:Tag OK);
$goo = ...; # NOT export
sub gle {...} # NOT export
# End of SomeModule
DESCRIPTION
ExportAbove sets your module's subroutine or variable (scalar, array or hash) names into @EXPORT, @EXPORT_OK or %EXPORT_TAGS automatically. You do not have to write '@EXPORT = qw(...);' and so on. You need only a 'use ExportAbove...;' line below the subroutine or variable definitions you want to export. You do not have to write same subroutine or variable names twice at '@EXPORT = qw(...);' and its definitions. If you want to change that names, you simply change only its definitions.
Set into @EXPORT
If you want to export some subroutines or variables in default, write as following below its definitions.
use ExportAbove;
Set into @EXPORT_OK
If you want to export some subroutines or variables on demand, write as following below its definitions.
use ExportAbove 'OK';
Set into %EXPORT_TAGS and @EXPORT
If you want to export some subroutines or variables in default or on demand by the tag name 'Tag', write as following below its definitions.
use ExportAbove ':Tag';
Two or more tag names are available as following.
use ExportAbove qw(:Foo :Bar);
Set into %EXPORT_TAGS and @EXPORT_OK
If you want to export some subroutines or variables not in default and on demand by the tag name 'Tag', write as following below its definitions.
use ExportAbove qw(:Tag OK);
Two or more tag names are available.
Not export
If you do not want to export some subroutines or variables, write as following below its definitions.
no ExportAbove;
Mixed uses
Mixed uses are available. See SYNOPSIS above.
Exceptional names
ExportAbove never set all capital names such as BEGIN, AUTOLOAD, @ISA,... into @EXPORT*.
Exporter required
ExportAbove does NOT export the names you specified. Exporter module does it. Please do NOT forget to use Exporter and set 'Exporter' into @ISA.
AUTHOR
nakajima@netstock.co.jp
SEE ALSO
Exporter