- or download this
package ModuleName;
use Exporter::VA qw/import AUTOLOAD VERSION/;
- or download this
our %EXPORT= ( # all configuration done in this one hash
foo => [ v1.0, 'foo_old', v2.0, 'foo_new' ],
...
.default_VERSION => v1.5,
.warnings => 1
);
- or download this
use ModuleName;
- or download this
use ModuleName v2.1;
- or download this
use ModuleName v2.1 qw/ foo bar fobble $y/;
- or download this
my %Export= ( #...
use Exporter::VA (\%Export, 'import'); # look ma, no package
+globals!
- or download this
use Exporter::VA ('import', {
foo => \\&internal_foo,
bar => \\&internal_bar
} ); # put it all inline in this statement.
- or download this
%EXPORT= (
&foo => "foo", # & is optional for functions
$bar => "$_internal_bar",
baz => "" # means "same".
);
- or download this
foo => [ v1.0, 'foo_old', v2.0, 'foo_new' ]
- or download this
use ModuleName v1.78 ('foo'); # note no comma after v-string
- or download this
%EXPORT= (
&foo => \&figure_it_out_later,
$bar => sub { ... logic goes here ... },
%fible => sub { \%internal_fible }
);
- or download this
sub figure_it_out_later
{
my ($blessed_export_def, $caller, $version, $symbol, $param_l
+ist_tail)= @_;
- or download this
%fible => \\%internal_fible
- or download this
%EXPORT= (
apple => ...
...
cheeze => ...
:fruit => [ qw/apple banana pear/ ]
);
- or download this
use ModuleName v1.78 qw/potato :fruit cheeze/;
- or download this
%EXPORT= (
:list => [ v1.0, ':_old_list', v2.3, ':_new_list' ],
:_old_list => [ 'foo', 'bar', 'baz', 'fobble' ],
:_new_new => [ 'fobble' ]
);
- or download this
use ModuleName v1.2 ':list';
- or download this
use ModuleName ':_old_list';
- or download this
use ModuleName v2.4 ':list';
- or download this
use ModuleName ':_new_list';
- or download this
%EXPORT= (
foo => [ v1.0, 'foo_old', v2.0, 'foo_new' ],
...
:_old_imports => [ 'foo', 'bar', 'baz', 'fobble' ],
:_new_imports => [ 'fobble' ],
# ... others ...
- or download this
%EXPORT= (
-prag => \&callme,
# ...
- or download this
use ModuleName v1.0 qw/ foo -prag bar/;
- or download this
%EXPORT= (
-verbose => sub { my $caller= shift; $verbose{$caller}
+=1; }
- or download this
.allowed_VERSIONS => [
1.0, # initial relase
1.1, # minor fixes
- or download this
%EXPORT= (
.&begin => sub {
my ($blessed_export_def, $caller, $version, $symbol,
+ $param_list_tail)= @_;
#...
- or download this
.default_VERSION => v1.99, # changed stuff with 2.0,
+must ask for new stuff.
- or download this
%EXPORT= (
.plain => [qw/foo $x &zed],
- or download this
%EXPORT= (
&foo => "",
$x => "",
&zed => "",
- or download this
%EXPORT= (
.&unknown_import => sub {
my ($blessed_export_def, $caller, $version, $symbol,
+ $param_list_tail)= @_;
#...
- or download this
%EXPORT= (
.&unknown_type => sub {
my ($blessed_export_def, $caller, $version, $strange
+_import_param, $import_list_tail)= @_;
#...
- or download this
If the import list contains something that is not a scalar, then it is
+ passed to this callback. The
thing in question is C<$strange_import_param>.
- or download this
.warnings => 0,
- or download this
foo => [ v1.0, 'foo_old', v2.0, 'foo_new' ],
bar => 'bar_internal',
fobble => \&figure_it_out,
- or download this
use ModuleName v1.5 qw(foo bar);
- or download this
sub import
{
...
$export_def-> set_client_desired_version ($caller, $version);
$export_def -> export ($caller, $version, \@_);
}
- or download this
package Extend;
use Exporter::VA ();
@ISA= ('Exporter::VA');
sub resolve { ... # override what I need to change here
- or download this
package ModuleName;
use Exporter::VA qw/ -derived Extend import AUTOLOAD /;
%EXPORT= { ... #
# proceed writing my module
- or download this
autoload_symbol ($blessed_export_def, $module, $symbol)
- or download this
$vstring= client_desired_version ($blessed_export_def, $caller
+)
- or download this
$ref= resolve ($blessed_export_def, $caller, $version, $item)
- or download this
package ModuleName;
use Exporter::VA qw/-derived ExpEnhancement import AUTOLOAD/;