use strict; use warnings; package Config::Once; use Config::Auto; sub init { my ($class, $config_path) = @_; ... } sub cfg { my ($class, $param) = @_; my $config_varname = $class . '::Config'; no strict 'refs'; return $$config_varname->{$param} if (defined $param); return $$config_varname; } 1;