perl - 在 perl 中使用子函数警告

标签 perl

sub SampleFunc() { ... } sub SampleFunc { ... } 有什么区别

因为如果我使用 () 括号,我会在编译 perl -wc Testing 时收到警告。如果我没有在 sub SampleFunc 中使用 () 括号,确保我不会收到警告消息。

例如:

 $sampleout = cleartex($sampleinput);

错误信息:

 main::cleartex() called too early to check prototype at Sample.pl line xxx.

你能请别人解释一下这个吗?如果我删除 () 那么可能会在输出中收到任何重大差异?

最佳答案

如果你用括号声明一个子程序,你就是在定义一个 perl 原型(prototype)。这通常不是您想做的事情,因为 perl 原型(prototype)不是您从其他语言中识别出来的那种。

perldoc prototype

大多数情况下,您不应该在正常实践中使用它们 - 它们的用途/原因非常小众,并且主要是在您尝试以不同方式重新实现某些内置功能时。

只要丢掉原型(prototype),继续你的一天,你就会没事的。

关于perl - 在 perl 中使用子函数警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072588/

相关文章:

perl - 在没有外部库的情况下尝试在 Perl 中捕获

perl - 如何在 perl 中返回一个空数组/长度为 0 的数组?

c++ - Wxwidgets/Wx Perl 网格大小问题

linux - 如何运行同一脚本的多个 perl 实例?

xml - 如何使用 XML::Twig 获取内容?

perl - 在 perl @ARGV 中查找管道和重定向

windows - 如何将 perl 脚本中设置的环境变量导出到批处理 shell?

perl - 为什么此行返回整数 1-10 的总和?

perl - JOIN 中的附加条件

perl - 请解释perl语句