如何在运行时确定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"; } 甚至严格? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |