Perl导出建议

Perl导出建议,perl,perl-exporter,Perl,Perl Exporter,我正在使用一个需要与perl接口的新程序 示例代码建议将所有方法导出到全局命名空间,如下所示: use BGPmon::Fetch; my $ret = init_bgpdata(); my $ret = connect_bgpdata(); my $xml_msg = read_xml_message(); ... 但是,使用任何类似的方法都会导致“Undefined subroutine&Fetch::init_bgpdata”我知道该模块可以工作,但似乎无法正确导出,因为我仍然可以使用长

我正在使用一个需要与perl接口的新程序

示例代码建议将所有方法导出到全局命名空间,如下所示:

use BGPmon::Fetch;
my $ret = init_bgpdata();
my $ret = connect_bgpdata();
my $xml_msg = read_xml_message();
...
但是,使用任何类似的方法都会导致“
Undefined subroutine&Fetch::init_bgpdata
”我知道该模块可以工作,但似乎无法正确导出,因为我仍然可以使用长名称:
BGPmon::Fetch::init_bgpdata()

模块无法正确导出的任何原因

注意:我很想分享方法代码,但我知道模块没有问题。它是我无法共享的代码集的一部分,我知道它是有效的,因为测试成功通过了

出口组
(我的是开发人员)

在您给出的代码中,您正在定义一个标记
:all

那么你调用代码就可以了

use  BGPmon::Fetch ':all' ;
或者,您可以单独导入它们

use BGPmon::Fetch qw(init_bgpdata connect_bgpdata); # and so on

值得一看——如果已经这么做了,请道歉

我对perl非常陌生。我试图打印BGPmon::Fetch::@EXPORT
,但一无所获。我这样做是错误的还是预期的?如何查看/发布模块源代码的相关部分?:)更新了一些细节。公共版本并不比我的版本落后太多,但是因为我没有自己的代码,我不能在没有许可的情况下发布这个开发工作?不,这个模块没有导出它会让人抓狂。。。这似乎不对。(可能是开发版本的一个缺陷。)这似乎是朝着正确方向迈出的一步。我似乎无法导入init_bgpdata,因为它说它不是由该模块导出的。我在看出口商文件中关于匹配包裹名称的内容。我需要使用程序包名称还是模块的程序包名称?您需要将
init\u bgpdata
添加到正在导出的子程序列表中。代码与
connect\u bgpdata
配合良好,这被认为是我将在明天的会议上提出的一个缺陷。非常感谢。
use BGPmon::Fetch qw(init_bgpdata connect_bgpdata); # and so on