NAME
Attribute::Imports: pull code, scalar, array, or hash symbols into the current package.
SYNOPSIS
Modules that export items by name can cause confusion due to undocumented exports or collisions due to re-used names. Importing the symbols into explicitly named items in the local package avoids [most] issues.
# say you wanted to use 'filebase' as the sub
# name to determine the base name of a file.
use File::Basename qw();
sub filebase :imports( qw( &File::Basename::basename ) );
# or you wanted to avoid varaible collisions.
require Foo;
require Bar;
our $foo_verbose :imports( qw( $Foo::verbose ) );
our $bar_verbose :imports( qw( $Bar::verbose ) );
# or give more descriptive values to the
# variables in your context.
our @prefix :imports( qw( @Mod1::Names ) );
our @suffix :imports( qw( @Mod2::Names ) );
our %matchlist :imports( qw( %Blah::known_names ) );
# notice the lack of lexical variables
# and anonymous subs: neither of these
# have a symbol table entry to install
# the imported symbol into.
DESCRIPTION
This uses the Symbol module to access the value of a requested symbol, and the CODE, SCALAR, ARRAY, or HASH entry of the remote symbol to pull a value into the current package.
LICENSE
This module is released under the same terms as Perl-5.10.0.
AUTHOR
Steven Lembark <lembark@wrkhors.com>