所以我 figured out 如何加载一个直到运行时才知道 $module_name
的模块。
现在,我希望访问一个哈希键,它的值恰好是一个 CODEREF。
my $hash_key = 'SOME_KEY';
my $code_ref = ${$module_name::hash}{$hash_key};
然后说:
$code_ref->(@args);
${$module_name::hash}{$hash_key}
对我来说很奇怪,我想知道它是否按预期工作? 最佳答案
有点。您编写的内容将不起作用( $module_name::hash
是 $hash
包中的标量变量 module_name
),但这将:
my $code_ref = ${$module_name . "::hash"}{$hash_key};
use strict 'refs'
不鼓励和禁止这种构造。我不知道您的用例是什么,但要考虑的另一种方法是在动态加载的模块中实现一些常用方法。my $code_ref = $module_name->getCode($hash_key);
$code_ref->(@args);
关于perl - 访问其模块直到运行时才知道的模块的哈希键,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34424506/