Python是我的主要语言,但必须维护一个相当大的传统Perl代码库 我有一个奇怪的逻辑陈述,我无法做出正面或反面。
在顶部,常量定义为:
use constant FALSE => 0;
sub thisFunc {
FALSE if ($self->{_thisVar} ne "tif");
...
...
return statement,etc..
}
因此,我将其视为一种“有点'花哨的,非标准的if-then声明, 如果$ thisVar字符串不等于" tif",则为FALSE。咦? 不是$ that = FALSE,只是 FALSE 。
此语句的形式多次出现在文件中。 这个代码库正在使用中,多年来一直由非常好的团队审核, 所以我认为这是有效的,有意义。 "使用严格;"设置在最顶层。
有人可以如此善意地解释逻辑的含义。 我已经谷歌,但没有快乐。 提前谢谢,
答案 0 :(得分:0)
"如果" Perl中的逻辑可以通过几种方式构建:
显而易见的一个:
<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
不太明显的一个:
if ($flag) { do_something() }
这个例子说明了如何&#34; FALSE如果&#34; FALSE的确切行为。语句 - 在子例程中为LAST语句时,只发现其含义:
do_something() if ($flag);
上面运行的输出是:
use strict;
use constant FALSE => 0;
sub thisFunc {
my $arg = shift;
FALSE if ($arg ne "tif");
}
print "return val: ".thisFunc("ble")."\n";
print "return val: ".thisFunc("tif")."\n";
答案 1 :(得分:0)
毫无意义。我怀疑它是
return FALSE if $self->{_thisVar} ne "tif";
有一种类似的结构并非毫无意义。如果循环条件有副作用,则以下内容并非毫无意义:
1 while some_sub();
又名
while (some_sub()) { }
又名
while (1) {
some_sub()
or last;
}
实际例子:
$ perl -E'$_ = "xaabbx"; 1 while s/ab//; say'
xx