gpt4 book ai didi

perl - 为什么这段 Perl 代码使用 1;陈述?

转载 作者:行者123 更新时间:2023-12-02 12:01:37 30 4
gpt4 key购买 nike

Possible Duplicate:
Why do you have to put a 1; at the end of a Perl 5 module?

从此页面Perl::Critic::Policy::Subroutines::RequireFinalReturn ,这是一个代码示例

package Password;
# every time the user guesses the password wrong, its value
# is rotated by one character
my $password;
sub set_password {
$password = shift;
}
sub check_password {
my $guess = shift;
if ($guess eq $password) {
unlock_secrets();
} else {
$password = (substr $password, 1).(substr $password, 0, 1);
}
}
1;
  • 为什么是 1;最后用的?该语句对编译器意味着什么?

我尝试了代码 withwithout它。结果看起来是一样的。

最佳答案

这是因为 Perl 模块必须返回“true”才能作为模块工作。如果一个模块没有返回 true,则认为其初始化失败,相当于调用 die。不过,如果代码不用作模块,则不需要这样做,因此除非您尝试将代码示例也用作模块,否则您不会看到差异。

1; 可能是返回 true 的最简洁的方法之一。

如果你看一下 this site ,您会发现人们在返回值方面非常有创意。

关于perl - 为什么这段 Perl 代码使用 1;陈述?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3745853/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com