在perl中使用子函数警告

问题描述 投票:2回答:1

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
1个回答
6
投票

如果使用括号声明子例程,则定义perl原型。这通常不是你想要做的事情,因为perl原型不是你从其他语言中识别的那种。

perldoc prototype

大多数情况下,你不应该在正常的练习中使用它们 - 它们的用途/原因非常小,而且主要是当你试图以不同的方式重新实现某些内置函数时。

只是失去原型,继续你的一天,你会没事的。

© www.soinside.com 2019 - 2024. All rights reserved.