我正在考虑构建一个调度表来调用我编写的许多 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 对此有一些很好的例子。