Perl Module ::加载失败

时间:2016-02-19 05:23:57

标签: perl plugins module

我尝试使用Module :: Load从目录动态加载插件,但即使在最大限度地简化代码之后它也无法正常工作。 主文件:

#!/usr/bin/perl

use strict;
use warnings;
use Module::Load;

Module::Load::load_remote('Package', 'plugins/Blank.pm') or die;

插件/ Blank.pm:

#!/usr/bin/perl

package plugins::Blank;

use strict;
use warnings;

1;

但它仍然死亡。当我删除'...或die'部分时,它没有死亡,但Package仍未加载。

1 个答案:

答案 0 :(得分:0)

com.dropbox.core.v2.DbxFiles$ListFolderException: Exception in list_folder: ListFolderError.{".tag":"path","path":{".tag":"other"}} 在失败时死亡,但不会返回任何内容。您的示例适用于我,并加载包。如果它没有加载包,它应该在Module::Load::load_remote内死亡。 load_remote仅加载导出到其他命名空间的函数。如果另一个模块作为模块名称而不是文件名加载,它似乎也可以工作:

load_remote

load.pl

#!/usr/bin/perl use strict; use warnings; use Module::Load; Module::Load::load_remote("Package","plugins::Blank","hw"); Package::hw();

plugins/Blank.pm

输出:

  

Hello World

但要达到你想要的效果,你可以使用这样的方法:

package plugins::Blank;

use strict;
use warnings;
use Exporter qw(import);

our @EXPORT_OK = qw(hw);

sub hw {
    print "Hello World\n";
}

1;