gpt4 book ai didi

perl - 从字符串调用 perl 模块的方法

转载 作者:行者123 更新时间:2023-12-04 05:42:42 25 4
gpt4 key购买 nike

给定一个带有方法 aSub() 和 bSub() 的 perl 模块 Foo.pm

my $obj = Foo->new();
my $x = $obj->aSub($argA);
my $y = $obj->bSub($argB);

我有一个 TAP 程序,我在其中构建了一个哈希数组:
my $test_case = [
'aSub' => "foobar",
'bSub' => "whobar"
];

我希望能够解析数组并使用键/值元素来调用 Foo 对象 $obj; 上的方法。
像一个静态方法:
if ($key eq 'aSub') {
$obj->aSub($value)
} elsif ($key eq 'bSub') {
$obj->bSub($value);
}
...

我宁愿多态地这样做,所以我不必对方法进行硬编码:
$obj->{$key}($value) #or something of the sort  

我尝试了几种使用引用和/或 glob 的方法,但我不断收到错误:

Error: Threw an exception: aSub is not defined



Test::Harness 捕获错误并打印不太有用的消息?

最佳答案

调用名称在变量中的方法很容易:

my $key = 'aSub';
my $value = 'foobar';
my $obj = Foo->new();

$obj->$key($value);

关于perl - 从字符串调用 perl 模块的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6286502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com