b/w动态加载模块的两种方式有什么区别?

ask*_*ker 0 perl

=any
            eval qq(
                use $$category_r[0];
                );
            die $? if $?;
=cut
            require "$$category_r[0].pm";
Run Code Online (Sandbox Code Playgroud)

现在只require为我工作,我不知道为什么第一个不按预期工作......

即使这不起作用:

my $pkg = "A";
eval {
    use $pkg;
    };
Run Code Online (Sandbox Code Playgroud)

Dal*_*aen 5

如果要动态加载模块,请尝试使用Module :: Load.

它适用于文件名和模块.它比...更安全

my $module = "strict; warn 'PWNED'";
eval "use $module"; 
Run Code Online (Sandbox Code Playgroud)

另外,正如@daxim指出的那样,它解释了正在发生的事情.

  • +1是的,请更好地记录程序员的意图. (2认同)