Perl在if控制结构的条件判断部分可以使用任意的标量值,这在某些时候将很方便,如:
$is_bigger = $name gt 'fred';
if($is_bigger){...}
那么,Perl是怎么判断其值是true或false呢?Perl不同于其他的一些语言,它没有Boolean类型。它利用如下几条规则(事实上Perl不是用的这些规则,但你可以利用它们方便记忆,其结果是一致的):
- 如果值为数字,0是false;其余为真
- 如果值为字符串,则空串('')为false;其余为真
- 如果值得类型既不是数字又不是字符串,则将其转换为数字或字符串后再利用上述规则。
这意味这undef为false,所有的引用都是true。
另外,这些规则中有一个特殊的地方。由于字符串'0'和数字'0'有相同的标量值,Perl将他们相同看待。也就是说字符串'0'是唯一一个非空但值为0的串!
阅读(2343) | 评论(0) | 转发(0) |