package My::Config; use strict; my %prod = ( foo => 'bar' ); my %export= ( '%prod' => \%prod ); sub import { my ( $me, @syms )= @_; my $caller= caller(); for my $sym ( @syms ) { my $ref = $export{$sym}; if ( ! $ref ) { require Carp; Carp::croak( __PACKAGE__, " does not export $sym\n" ); } $sym =~ s/^[\$\@\%]//; no strict 'refs'; *{ $caller.'::'.$sym }= $ref; } }