从perl模块返回-1

从perl模块返回-1,perl,package,Perl,Package,可能重复: 通常我们使用1;在模块的末尾。这表示模块返回true,并且可以正确导入。现在,如果我们返回0表示false,则表示模块导入失败 我的问题是,如果我在模块末尾使用或返回下面的语句会怎么样 -1; 一些文本; 或abc; 是-1表示错误,而有些文本,abc表示正确吗 如果我不使用1怎么办;或者上面的任何语句,在这种情况下模块返回什么 它是否返回undef?这些是真的,模块将编译。然而,在更积极的诊断下,我看到编译器发出关于1以外的值的警告。其实这是1,;可以放在任何一行上。有时我把这

可能重复:

通常我们使用1;在模块的末尾。这表示模块返回true,并且可以正确导入。现在,如果我们返回0表示false,则表示模块导入失败

我的问题是,如果我在模块末尾使用或返回下面的语句会怎么样

-1; 一些文本; 或abc; 是-1表示错误,而有些文本,abc表示正确吗

如果我不使用1怎么办;或者上面的任何语句,在这种情况下模块返回什么


它是否返回undef?

这些是真的,模块将编译。然而,在更积极的诊断下,我看到编译器发出关于1以外的值的警告。其实这是1,;可以放在任何一行上。有时我把这些代码放在调试的中间,只是为了调试好断点线。< /P> 许多程序在较低的诊断级别上运行时没有问题,因为在最后一个表达式中意外地出现了各种真值,而不必是最后一行

$a = "True value to accidentally keep -c happy."; sub hello { return; }
这些都是正确的,模块将编译。然而,在更积极的诊断下,我看到编译器发出关于1以外的值的警告。其实这是1,;可以放在任何一行上。有时我把这些代码放在调试的中间,只是为了调试好断点线。< /P> 许多程序在较低的诊断级别上运行时没有问题,因为在最后一个表达式中意外地出现了各种真值,而不必是最后一行

$a = "True value to accidentally keep -c happy."; sub hello { return; }
任何真值都表示成功-1是真实值

报税表不必在文件末尾;它是最后一条可执行语句的返回值,也就是说,最后一条语句不仅仅是一个编译时语句,比如package、use、no、sub、format

例如,需要包含以下内容的文件:

package foo;
our @x;
sub bar { }
如果@foo::x为空,则将失败,否则将成功


如果确实没有可执行语句,则返回值被视为undef false。

任何true值都表示成功-1是真实值

报税表不必在文件末尾;它是最后一条可执行语句的返回值,也就是说,最后一条语句不仅仅是一个编译时语句,比如package、use、no、sub、format

例如,需要包含以下内容的文件:

package foo;
our @x;
sub bar { }
如果@foo::x为空,则将失败,否则将成功


如果确实没有可执行语句,则返回值将被视为undef false。

与sub一样,模块返回的值是最后一个求值语句返回的值。如果文件是空的,我想它是未定义的。这绝对不是真正的价值

模块应始终返回除零、空字符串或undef以外的任何值

-1是真的,所以这是可以接受的。 some text是text->some的间接方法调用。 当且仅当方法返回真值时,text->some和等效值才可接受。为了安全起见,我会用一个真正的常数来跟进。 abc要么是等价于abc的子例程调用,要么是等价于“abc”的字符串文字。 当且仅当子例程返回真值时,abc和等效值才可接受。为了安全起见,我会用一个真正的常数来跟进。 “abc”和等效值是正确的,因此这是可以接受的。
如果有错误,就去死吧。但是,如果合理的话,即使这样也应该避免,因为如果有人捕获到异常,它会使模块半加载半执行。

就像对于子模块一样,模块返回的值是最后一个求值语句返回的值。如果文件是空的,我想它是未定义的。这绝对不是真正的价值

模块应始终返回除零、空字符串或undef以外的任何值

-1是真的,所以这是可以接受的。 some text是text->some的间接方法调用。 当且仅当方法返回真值时,text->some和等效值才可接受。为了安全起见,我会用一个真正的常数来跟进。 abc要么是等价于abc的子例程调用,要么是等价于“abc”的字符串文字。 当且仅当子例程返回真值时,abc和等效值才可接受。为了安全起见,我会用一个真正的常数来跟进。 “abc”和等效值是正确的,因此这是可以接受的。
如果有错误,就去死吧。但是,如果合理的话,即使这样也应该避免,因为如果有人捕获到异常,它会让模块半加载半执行。

即使失败也不应该返回零。应该始终返回true或die。您可以返回0E0;这意味着零,但它不是错的……再想一想,你不应该返回0E0。即使失败也不应该返回零。应该始终返回true或die。您可以返回0E0;这意味着零,但它不是错的……再想想,你不应该返回0E0。