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)不是您从其他语言中识别出来的那种。
大多数情况下,您不应该在正常实践中使用它们 - 它们的用途/原因非常小众,并且主要是在您尝试以不同方式重新实现某些内置功能时。
只要丢掉原型(prototype),继续你的一天,你就会没事的。
关于perl - 在 perl 中使用子函数警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072588/