Perl中的真與假深入研究
Perl認(rèn)為真值是自明的(self-evident), 表示任何事物的真值都可以計(jì)算。Perl以實(shí)用的方式來(lái)定義真值,即一個(gè)實(shí)體的真值取決于這個(gè)實(shí)體的類型。Perl總是樂(lè)觀的認(rèn)為:這個(gè)世界上真的東西遠(yuǎn)比假的東西多的多。
Perl區(qū)別與任何其他計(jì)算機(jī)語(yǔ)言,Perl是語(yǔ)言學(xué)家創(chuàng)造的,而語(yǔ)言的意思離不開(kāi)上下文語(yǔ)境,所以Perl中的真值都可以在標(biāo)量(標(biāo)量$與數(shù)組@類似于英文中的單數(shù)與復(fù)數(shù), book 與 books的區(qū)別, 真值在現(xiàn)實(shí)世界中,應(yīng)該就是單數(shù),所以是標(biāo)量)計(jì)算,除此之外,不會(huì)做任何類型的強(qiáng)制轉(zhuǎn)換(比如在Python中int('42')來(lái)將含數(shù)字的字符型轉(zhuǎn)換int類型,在Java中(int)'d'將字符型轉(zhuǎn)為整型)。
對(duì)于標(biāo)量中各種類型的值,規(guī)則如下:
字符型: 除了""和"0",所有字符都是真(true)
數(shù)字型: 除了0外,所有數(shù)字都是true
引用型: 所有引用都為true(所有引用都會(huì)指向有地址的對(duì)象,這絕對(duì)不會(huì)為0,因?yàn)樗隙ㄒ讯x)
未定義: 所有未定義值都是false
下面例子可以很好理解Perl中真、假的概念:
0 # 將轉(zhuǎn)換為字符串"0",所以為false
1 # 將轉(zhuǎn)換為字符串"1",所以為true
100 - 100 # 100-100等于0,這將轉(zhuǎn)換為字符串"0",所以為false
0.00 # 等于0,將轉(zhuǎn)換為字符串"0",所以為false
"0" # 字符串"0",所以為false
"" # 這是空串,所以為false
"0.00" # 即不是"",也不是"0",所以為true
"0.00" + 0 # 由+強(qiáng)制轉(zhuǎn)換,計(jì)算結(jié)果為0,所以為false
\$a # 標(biāo)量$a的引用,所以為true,即使$a為false也是如此。
undef() # 是一個(gè)返回未定義值的函數(shù),所以為false
相關(guān)文章
perl產(chǎn)生隨機(jī)數(shù)實(shí)現(xiàn)代碼
Perl利用函數(shù)rand()和srand()為隨機(jī)數(shù)(更確切的說(shuō)是“偽隨機(jī)數(shù)”)字符串的生成提供了基本的工具2013-02-02perl子程序的運(yùn)用及子程序中變量私有(my)聲明的重要性
perl中的my可以來(lái)定義私有變量,可以在很多情況下防止錯(cuò)誤的發(fā)生2013-02-02perl特殊符號(hào)及默認(rèn)的內(nèi)部變量
perl特殊符號(hào)及默認(rèn)的內(nèi)部變量,有需要的朋友不妨參考下2013-02-02Perl信號(hào)處理學(xué)習(xí)簡(jiǎn)單小結(jié)
這篇文章主要介紹了Perl信號(hào)處理學(xué)習(xí)簡(jiǎn)單小結(jié),本文著重列出了Unix下常見(jiàn)的處理信號(hào)表,需要的朋友可以參考下2014-09-09Perl從文件中讀取字符串的兩種實(shí)現(xiàn)方法
有時(shí)候我們需要從文件中讀取字符串,這里簡(jiǎn)單介紹下, 需要的朋友可以參考下2013-02-02perl跳過(guò)首行讀取文件的實(shí)現(xiàn)代碼
要求直接跳過(guò)第一行,然后讀取后面的內(nèi)容,以下代碼來(lái)自網(wǎng)絡(luò),感謝原作者的辛苦勞動(dòng),順祝新年快樂(lè)2013-02-02perl對(duì)m x n類似表進(jìn)行按列排序的代碼
perl對(duì)m x n類似表進(jìn)行按列排序的代碼,有需要的朋友可以參考下2013-02-02