網路管理語言 Perl 入門與實作: | ||
---|---|---|
<<< Previous | 4. Perl 的資料型態 | Next >>> |
在 Perl 中,什麼是真?什麼是假?有一套特殊的定義。初入門者,應特別留意。
Perl 用以下方式來決定真假值:
0 為假,其它數值皆為真。
'0'、"0" 及空字串 ''、"" 為假,其它字串皆為真。
運算結果可以轉換成 "0" 者為假。
undef 這個特別值為假。
任何未定義的值為假。
上述假值定義之外,其餘為真。
我們來看一些例子:
假值: 0 '0' "0" '' "" undef 10-10 0.0 '0.00' + 0 (請思考之) 真值: 1 11 22 -5 '0.00' |
用例:
#! /usr/bin/perl print "Sir, 請輸入: "; $ans=<>; chomp $ans; if (!$ans) { print "您沒有輸入任何東西!\n"; } else { print "您輸入的是:$ans\n"; } |
註 1:<> 是輸入符號,可由 標準輸入 取值。
註 2:chomp 是內建函式,可截去變數尾端的 \n 換行字元。
上述檢查只做一次就結束了,沒有太大意義,最好使用迴圈:
#! /usr/bin/perl while (!$ans) { print "Sir, 請輸入: "; $ans=<>; chomp $ans; if (!$ans) { print "您沒有輸入任何東西!\n\n"; } } print "您輸入的是:$ans\n\n"; |
上面這個例子有個缺點:當使用者輸入 0 時,由於 0 為假值,會被 !$ans 誤判為沒有輸入任何東西,解決的方法之一是採用:檢查$ans 的長度來判斷有無輸入資料?如下所示:
#! /usr/bin/perl while (length($ans)==0) { print "Sir, 請輸入: "; $ans=<>; chomp $ans; if (length($ans)==0) { print "您沒有輸入任何東西!\n\n"; } } print "您輸入的是:$ans\n\n"; |
<<< Previous | Home | Next >>> |
4.1.12 比較算符 | Up | 4.1.14 undef 的應用 |