在perl中学习条件

时间:2015-07-24 08:46:30

标签: perl

我正在学习perl脚本。我遇到了一个我不明白的例子:

my $num = 50;
if ($num) {
    print "True: $num\n";
} else {
    print "False: $num\n";
}

这确实非常简单,并打印出数字50,但我不明白的是条件。我期待像if ($num) > 40之类的东西或任何告诉计算机检查条件的东西。计算机如何将if ($num)解释为条件?

感谢您的任何解释。

3 个答案:

答案 0 :(得分:1)

引用perlsyn联机帮助页:

  

真相和虚假

     

数字0,字符串'0'和'',空列表“()”和“undef”在布尔上下文中都是false。所有其他值都是真的。

这里$num为真,因为它是一个非零整数,50。

请注意$num > 40之类的内容实际上并不是特殊的语法!如果条件成立,它将评估为1(或上限为"1",如果不符合,则评估为0(或空字符串"")。然后Perl会看到if (1)if (0)并相应处理。

答案 1 :(得分:1)

在Perl 0中,“”(emtpy字符串)将为false。所有其他都是真的。 请注意,如果您检查“0.0”作为条件,它将返回true,因为它不是空字符串。

答案 2 :(得分:-3)

这是一种检查变量是否具有真值的方法。以下计算结果为false,因为mainManuView.scala.html没有定义的值。

$num

请参阅What values are true and false in Perl