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

前端之家收集整理的这篇文章主要介绍了如何在运行时确定Perl函数是否存在?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在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 exist\n";
}

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

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

甚至严格?

原文链接:https://www.f2er.com/Perl/173125.html

猜你在找的Perl相关文章