【发布时间】:2012-12-30 03:43:21
【问题描述】:
我正在考虑构建一个调度表来调用我编写的许多 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 个模块加载到调度表中。 这使我更容易将配置作为数据加载,并与代码分开。 这允许我在测试台中加载其他模块而无需修改我的代码——只需修改配置文件。 Higher Order Perl 的作者 Mark Dominus 有一些很好的例子。
【问题讨论】:
-
感谢您指出这一点。我终于想通了如何接受。
标签: perl dynamic module subroutine