PERL的真值和假值(布林值)

URL Link //n.sfs.tw/13047

2019-01-18 08:29:24 By 張○○

PERL沒有邏輯的真假值

換句話說,沒辦法作以下的設定:

$c=true; # X 錯誤 Unquoted string "true" may clash with future reserved word
$d=false; # X 錯誤

但在PERL中可以判斷哪些值是true或false。

真是難懂的邏輯,打個比方來說:

有個檢測用的箱子,有兩個燈號T和F ,亮哪個燈號由這個檢測箱來判斷,他叫作"if"

變數==>[BOX] -- TRUE
                       ∟FALSE

哪些值在 Perl 裡是真值,哪些是假值?

假值

undef — 未定義值

0 — 數字 0,無論你寫成 000 或是 0.0

'' — 空字串

'0' — 只包含一個羅馬數字 0 的字串,超過1個為真

\0 NULL

@a=()  #空陣列

%h=() # 空雜湊

&f # 空副程式  sub f{}

真值

1 和任何非零數

' ' — 包含一個空白的字串

'00' — 兩個或許多數字零組成的字串

"0\n" — 一個數字零接上一個換行字元

'true'

'false' — 是的,即使字串 'false' 也是真值

@a=(undef) — 帶有 undef項目的陣列

 

參考資料

[1] https://tw.perlmaven.com/boolean-values-in-perl