使用 eval 加载模块

Pie*_*art 2 perl load module runtime eval

我在 Perl 和内置函数方面遇到了一些麻烦eval。我环顾了网络,但找不到任何答案或示例代码。

我想动态加载模块(在执行时间之前我不知道它们)

$module_name="Auth_Auth_Test";
my $ret1;
ret = eval{
     "use ".$module_name;
     $ret1 = $module_name."::test(".$log.")";
};              
$log->debug ($@) if $@;
$log->debug ("Ret".$ret1);
Run Code Online (Sandbox Code Playgroud)

回报是:

RetAuth_Auth_Test::test(Custom::Log=HASH(0x1194468))

以下方法对我有用,但我无法加载多个具有相同子程序的模块:

my $use = "use ".$module_name." qw(&test)";
$ret = eval $use;

# Debug for eval
$log->debug ($@) if $@;

$ret = test($log);
Run Code Online (Sandbox Code Playgroud)

感谢您的任何帮助

dax*_*xim 5

使用Module::Load代替。