我来自C背景,我正在尝试使用Beginning Perl学习perl.但是,第二章中的这段代码让我感到困惑:
#!/usr/bin/perl use warnings; print"Is two equal to four? ",2 == 4,"\n";
Is two equal to four?
下面进一步解释,2 == 4的值是未定义的,但这对我来说似乎令人困惑和反直觉.两个显然不等于四,4和4之间的相同比较将产生真,导致输出结束时为’1′.为什么表达式不返回false?
解决方法
确实如此.但是,Perl没有真假.它具有真实和虚假的价值观.
返回布尔值的运算符将在true时返回1,而在false时,返回数值为零的特殊值和字符串化时的空字符串.我建议你加零来对结果进行编号:
use warnings; print"Is two equal to four? ",0+(2 == 4),"\n";
输出:
Is two equal to four? 0