调用 perl 子例程

Posted

技术标签:

【中文标题】调用 perl 子例程【英文标题】:Invoking perl subroutines 【发布时间】:2013-11-27 01:51:24 【问题描述】:

这是一种更好的方法来,使用 '&' 或类似下面的东西

checkValueExists($value);


sub checkValueExists

my $value=@_;

#further code


第二种方法调用子使用

&checkValueExists($value);

【问题讨论】:

【参考方案1】:

& 是忽略原型的指令。这不太可能是你永远需要做的事情。在这里使用它是没有意义的,因为 sub 没有原型,如果它有原型就没有理由覆盖它。

【讨论】:

【参考方案2】:

perlsub 手册页中的 Perl 子例程比您需要了解的更多,但简单的答案是 &foo 是 Perl4 主义,在 Perl5 中很少使用。

正如另一位评论者所指出的,它禁用了prototypes。如果您需要引用子程序\&foo,或者如果您需要调用此类引用&$foo,也可以使用&。这些是更高级的 Perl 功能,如果您问的是这样一个相对基本的问题,您可能还不需要这些功能。

【讨论】:

我已根据您的评论修改并扩展了我的答案。

以上是关于调用 perl 子例程的主要内容,如果未能解决你的问题,请参考以下文章

什么时候应该使用 & 来调用 Perl 子例程?

如何从 unix shell 调用带有参数的子例程

将参数传递给 Perl 子例程时,是不是会影响数据复制性能?

如何在 Perl 子例程中处理已捕获和未捕获的错误?

Perl 中带有输出参数的子例程的最佳实践命名约定

进入由 shell 脚本设置的 perl 程序环境变量