我正在翻阅 7900 多行 Perl 代码。我需要改变一些事情,尽管我只学了 36 个小时的 Perl,但事情进展得很顺利。我学习了该语言的基本结构,并且能够完成一些小事情。但突然我发现一个函数调用在任何地方都没有任何定义。我用 grep 多次检查所有“子”。我找不到函数定义。我缺少什么?这个函数的定义在哪里。我很确定这是一个用户定义的函数,而不是一个库函数(从它的名字我猜到了这一点)。
请帮我找到这个函数的定义。
以下是函数用法的几行内容。
(cfg_machine_isActive($ep)) {
staf_var_set($ep, VAR_PHASE, PHASE_PREP);
staf_var_set($ep, VAR_PREP, STATE_RUNNING);
} else {
cfg_machine_set_state($ep, STATE_FAILED);
}
}
$rc = rvt_deploy_library(); #this is the function that is the problem
dump_states() unless ($rc != 0);
答案如下:
在 Perl 中声明方法有多种方法。这是一个几乎可以肯定不完整的列表:
- 标准方式,例如。
sub NAME { ... }
- 使用 MooseX::Method::Signatures,
method NAME (...) {...}
- 分配给 typeglob,例如。
*NAME = sub {...};
此外,如果包声明了AUTOLOAD
函数,那么可能没有该方法的显式定义。看perlsub http://perldoc.perl.org/perlsub.html#Autoloading了解更多信息。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)