gpt4 book ai didi

perl - Perl中调用子程序的非标准方式

转载 作者:行者123 更新时间:2023-12-01 07:02:47 24 4
gpt4 key购买 nike

我正在尝试一种在 Perl 脚本中调用子例程的不同方式。

我有一组功能如下:

sub Testcase_CheckStatus {
print "TestCase_CheckStatus called\n";
}

然后我使用“CheckStatus”之类的键遍历 Perl 哈希:
while (my ($k, $v) = each %test_cases) {
print "TestCase_$k","\n";
Testcase_$k();
}

基本上,我想在解析哈希键时像上面一样调用函数 Testcase_CheckStatus,但是我收到了这个错误:

Can't locate object method "Testcase_" via package "CheckStatus" (perhaps you forgot to load "CheckStatus"?) at ./main.pl line 17



我能做些什么来纠正这个问题?有没有其他方法可以做同样的事情?

最佳答案

另一种方式:

use 5.010;
use warnings;
use strict;


my $testcases = {
test_case_1 => sub {
return 1 * shift();
},
test_case_2 => sub {
return 3 * shift();
},
test_case_3 => \&SomeSub,
};

for (1 .. 3) {
say $testcases->{ 'test_case_' . $_ }(7);
}


sub SomeSub {
return 5 * shift();
}

关于perl - Perl中调用子程序的非标准方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10682750/

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