Chinaunix首页 | 论坛 | 博客
  • 博客访问: 60391
  • 博文数量: 17
  • 博客积分: 1400
  • 博客等级: 上尉
  • 技术积分: 160
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-07 11:16
文章分类

全部博文(17)

文章存档

2011年(1)

2009年(16)

我的朋友

分类:

2009-07-19 15:14:07

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的串!

阅读(2316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~