给定一个perl模块Foo.pm,方法是aSub()和bSub()
my $obj = Foo->new(); my $x = $obj->aSub($argA); my $y = $obj->bSub($argB);
我有一个TAP程序,我在其中构建一个哈希数组:
my $test_case = [ 'aSub' => "foobar",'bSub' => "whobar" ];
我希望能够解析数组并使用key / value元素来调用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捕获错误并打印不太有用的消息?