in reply to "use"ing from dynamic namespace
BEGIN { my $ns = __PACKAGE__; $ns =~ s/::[^:]*$//; eval "require $ns\::Config"; "$ns\::Config"->import(qw(x y z)); }
is the same as
BEGIN { ( my $ns = __PACKAGE__ ) =~ s/::[^:]*$//; my @syms = qw(x y z); eval "use $ns\::Config \@syms"; }
Then add error checking
BEGIN { ( my $ns = __PACKAGE__ ) =~ s/::[^:]*$//; my @syms = qw(x y z); eval "use $ns\::Config \@syms; 1" or die $@; }
Since you import, if can also do the job:
sub qualify_ns { ( my $ns = __PACKAGE__ ) =~ s/::[^:]*$//; return "$ns\::$_[0]"; } use if 1, qualify_ns('Config') => qw(x y z);
|
|---|