Perl中的真与假深入研究_perl

Perl认为真值是自明的(self-evident), 表示任何事物的真值都可以计算。Perl以实用的方式来定义真值,即一个实体的真值取决于这个实体的类型。Perl总是乐观的认为:这个世界上真的东西远比假的东西多的多。

Perl区别与任何其他计算机语言,Perl是语言学家创造的,而语言的意思离不开上下文语境,所以Perl中的真值都可以在标量(标量$与数组@类似于英文中的单数与复数, book 与 books的区别, 真值在现实世界中,应该就是单数,所以是标量)计算,除此之外,不会做任何类型的强制转换(比如在Python中int('42')来将含数字的字符型转换int类型,在Java中(int)'d'将字符型转为整型)。

对于标量中各种类型的值,规则如下:

字符型: 除了""和"0",所有字符都是真(true)
数字型: 除了0外,所有数字都是true
引用型: 所有引用都为true(所有引用都会指向有地址的对象,这绝对不会为0,因为它肯定已定义)
未定义: 所有未定义值都是false

下面例子可以很好理解Perl中真、假的概念:

复制代码 代码如下:

0           # 将转换为字符串"0",所以为false 
1           # 将转换为字符串"1",所以为true 
100 - 100   # 100-100等于0,这将转换为字符串"0",所以为false 
0.00        # 等于0,将转换为字符串"0",所以为false 
"0"         # 字符串"0",所以为false 
""          # 这是空串,所以为false 
"0.00"      # 即不是"",也不是"0",所以为true 
"0.00" + 0  # 由+强制转换,计算结果为0,所以为false 
\$a         # 标量$a的引用,所以为true,即使$a为false也是如此。 
undef()     # 是一个返回未定义值的函数,所以为false 

时间: 2024-09-26 08:24:16

Perl中的真与假深入研究_perl的相关文章

Perl中的真与假深入研究

  这篇文章主要介绍了Perl中的真与假深入研究,本文详细讲解了Perl中真值与假值的不同,需要的朋友可以参考下 Perl认为真值是自明的(self-evident), 表示任何事物的真值都可以计算.Perl以实用的方式来定义真值,即一个实体的真值取决于这个实体的类型.Perl总是乐观的认为:这个世界上真的东西远比假的东西多的多. Perl区别与任何其他计算机语言,Perl是语言学家创造的,而语言的意思离不开上下文语境,所以Perl中的真值都可以在标量(标量$与数组@类似于英文中的单数与复数,

Perl中的列表和数组学习笔记_perl

一.列表 列表是包含在括号里的一序列的值,可以为任何数值,也可为空,如:(1, 5.3 , "hello" , 2),空列表:(). 注:只含有一个数值的列表(如:(43.2) )与该数值本身(即:43.2 )是不同的,但它们可以互相转化或赋值.列表例: 复制代码 代码如下:     (17, $var, "a string")     (17, 26 << 2)     (17, $var1 + $var2) ($value, "The an

Perl中chomp和chop的区别介绍_perl

chomp是用来删除换行符. 复制代码 代码如下: #!/usr/bin/perl $c="abcde"; chomp($c); print "$c\n"; [root@ak]# perl a.pl abcde chop是用来删除最后一个字符. 复制代码 代码如下: #!/usr/bin/perl $c="abcde"; chop($c); print "$c\n"; [root@ak]# perl a.pl abcd cho

perl中my和our的区别分析_perl

perl中our的用法require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是. 有一个简单的办法可以理解 our:1,你

perl中my与our的区别介绍_perl

先来看下our的用法. require 5.006当版本号小于 5.006 的时候,会返回失败,从而导致模块加载失败.所以它的作用就是保证模块调用环境的 Perl 版本. our 和 my 一样,都是对变量的声明,不过 our 声明的是包全局变量,而 my 声明的是词法变量. 不过,经过 our 声明的变量,它会变得像一个词法变量一样,其实这也是 our 存在的目的:用来欺骗 strict pragma,使 strict 以为它是一个词法变量,其实却不是. 有一个简单的办法可以理解 our:1,

Perl中use和require用法对比分析_perl

Perl use和require用法对比 对比(一)说明:这两个函数都是一个意思,加载和引用Perl的模块,或者是子程序, 区别在于Perl use是在当前默认的里面去寻找,一旦模块不在指定的区域内的化,用Perl use是不可以引入的 第一.Perl use引入的名称不需要后缀名,而require需要第二.Perl use语句是编译时引入的,require是运行时引入的第三,Perl use引入模块的同时,也引入了模块的子模块.而require则不能引入,要在重新声明 Perl use my

Perl中哈希的用法

对Perl中哈希用法的总结 用胖箭头对哈希键值对进行赋值 %some_hash = ('jim' => '20', 'tom' => '18', 'jerry' => '21'); 将哈希转换为列表 %any_hash = (k1,'v1',k2,'v2',k3,'v3',k4,'v4');    @arr = %any_hash; keys函数, 将哈希中的键提取出来, 例如存放到数组@k中 my @k = keys %any_hash; values函数,将哈希中的值提取出来,例如存

王志东:云计算是个筐真云假云不重要

点击科技总裁王志东 "现在云计算很火,好像每个人都在讨论云计算. 说法很多,很多人都想知道,到底什么是云计算?"在昨天下午的CSDN CTO俱乐部第24期主题沙龙上,点击科技总裁王志东向与会的数十名技术管理者分享了他对云计算的理解. 云计算是个筐,什么玩意儿都可以往里装 "原来云计算是个筐,什么玩意儿都可以装:用户议论的其实是SaaS和Utility Computing(公用计算):工程师和学者关心虚拟化.网格.分布计算.并行计算:至于厂商嘛,看看自己口袋,里面有啥,云计算就

网站流量是真还是假 要判断有好方法

我们做网络的推广尤其是竞价广告的营销,最担心的可能就是虚假流量了,虚假流量不但不能给我们带来任何的客户,还会不断的浪费我们的广告费,而且会给服务器或者虚拟主机带来压力.所以,学会如何判断虚假流量的方法,是我们学习网络推广特别是竞价营销中必不可少的一部分. 要分析网络的流量的真与假,首先要解释清楚什么是虚假流量.个人认为虚假流量就是自己通过换IP点击而得来的流量或者是站长之间互相点击而刷上去的流量.例如:一个网站,它的日访问IP可以达到几十万,这个网站的站长现在卖广告位给你,而给你的包月价格只有5