我正在研究构建调度表来调用我编写的一些Perl模块。例如,如果我有一个名为Hello.pm
的软件包,其中包含一个简单函数hello()
,我希望获得该函数的代码引用。调用一个模块函数通过引用
下不起作用:
my $code_ref=\&Hello->hello();
$code_ref->();
但如果功能招呼从包装出口,那么以下工作:
my code_ref=\&hello;
code_ref->();
有谁知道第一种情况下正确的语法?或者这是不可能的?
最后,我想用我所有的代码引用填充一个哈希表。
#####感谢所有的答案由几个答案中指出正确的调用是:
my $code_ref=\&Hello::hello;
$code_ref->();
我有10个不同的文件中的某些10个模块,我想在加载调度表。 这使我更容易将配置作为数据加载,并与代码分开。 这允许我在测试平台中加载额外的模块而不修改我的代码 - 只需修改配置文件即可。 Mark Dominus是Higher Order Perl的作者,在这方面有一些很好的例子。
感谢您指出了这一点。我终于想出了如何接受。 – sammy