加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在运行时确定Perl函数是否存在?

发布时间:2020-12-15 21:20:32 所属栏目:大数据 来源:网络整理
导读:我正在Perl开发一个测试框架。作为测试的一部分,我可能需要为任何给定的测试添加前提条件或后置条件检查,但不一定适用于所有测试。到目前为止我已经有了这样的事情: eval "verify_precondition_TEST$n";print $@ if $@; 不幸的是,如果该函数不存在,则输
我正在Perl开发一个测试框架。作为测试的一部分,我可能需要为任何给定的测试添加前提条件或后置条件检查,但不一定适用于所有测试。到目前为止我已经有了这样的事情:
eval "&verify_precondition_TEST$n";
print $@ if $@;

不幸的是,如果该函数不存在,则输出“Undefined subroutine& verify_precondition_TEST1 called at …”。

在尝试调用之前,我如何能够提前确定函数是否存在?

解决方法

定义:
if (eval "defined(&verify_precondition_TEST$n)") {
    eval "&verify_precondition_TEST$n";
    print $@ if $@;
}
else {
    print "verify_precondition_TEST$n does not existn";
}

编辑:嗯,我只想到了这个问题,但是用Leon Timmermans提出的象征性的参考,你不能做

if (defined(&{"verify_precondition_TEST$n"}) {
    &{"verify_precondition_TEST$n"};
    print $@ if $@;
}
else {
    print "verify_precondition_TEST$n does not existn";
}

甚至严格?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读