use Base::Module; Base::Module::Config->import(qw( %conf )); #### package Base::Module; use strict; use warnings; sub config_module { "Base::Module::Config" } use base 'Exporter'; BEGIN { our @EXPORT_OK = qw( &%conf ); eval 'require ' . config_module; no strict 'refs'; no warnings 'once'; *conf = \%{config_module . '::conf'}; } #### use Base::Module qw( %conf ); #### sub base_module { "Base::Module" } BEGIN { eval 'require ' . base_module; base_module()->import(qw( %conf )); }