加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – 通过引用调用模块函数

发布时间:2020-12-15 23:29:25 所属栏目:大数据 来源:网络整理
导读:我正在寻找构建一个调度表来调用我写的许多Perl模块. 作为一个例子,如果我有一个名为Hello.pm的包,其中包含一个简单的函数hello(),我想获得这个函数的代码引用. 以下不起作用: my $code_ref=Hello-hello();$code_ref-(); 但是如果从包中导出函数hello,则以
我正在寻找构建一个调度表来调用我写的许多Perl模块.

作为一个例子,如果我有一个名为Hello.pm的包,其中包含一个简单的函数hello(),我想获得这个函数的代码引用.

以下不起作用:

my $code_ref=&;Hello->hello();
$code_ref->();

但是如果从包中导出函数hello,则以下工作原理:

my code_ref=&;hello;
code_ref->();

有没有人知道第一种情况的正确语法?或者这根本不可能?

最后,我想用我的所有代码引用填充哈希表.

#####感谢所有答案

几个答案指出的正确调用是:

my $code_ref=&;Hello::hello;
$code_ref->();

我在10个不同的文件中有10个模块,我想在调度表中加载.
这使我更容易将配置作为数据加载,并与代码分开.
这允许我在测试平台中加载其他模块而无需修改我的代码 – 只需修改配置文件即可.高阶Perl的作者Mark Dominus对此有一些很好的例子.

解决方法

如果你想在Hello模块中引用hello sub,那么调用它,使用:

my $code_ref = &;Hello::hello;
$code_ref->();

如果要在Hello中调用名为“hello”的方法,可以这样做:

my $method = "hello";
Hello->$method();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读