2-3 數值和字串的互換與比較
文章推薦指數: 80 %
但在其他少數情況下,數值和字串的通用性可能導致程式的錯誤,此時就需要程式設計者的介入。
以下是Perl 的比較運算元(Comparison Operators):. 比較運算說明, 用於數值 ...
2-3數值和字串的互換與比較
Perl將數值和字串視為一體,並會自行進行必要之轉換,例如:
$str="XYZ".(3*4*5);
Perl看到「.」,知道要進行自串的連結,所以會先進行3*4*5的數值運算,得到60,再將之轉換成字串"60",最後和"XYZ"連結在一起,因此$str的值就是"XYZ60"。
再看看下面一個例子:
$num="123.45Miracle"+1;
Perl看到加號,知道要進行數值加法,所以會先將字串"123.45Miracle"轉成數值,得到123.45,再加上1,因此$num最後的值就是124.45。
一般而言,Perl會根據運算元來判斷運算元所需的資料型態,來進行字串和數值之間的相互轉換,其轉換結果大部分都能符合使用者的需求。
但在其他少數情況下,數值和字串的通用性可能導致程式的錯誤,此時就需要程式設計者的介入。
以下是Perl的比較運算元(ComparisonOperators):
比較運算說明用於數值的運算元用於字串的運算元
相等==eq
不相等!=ne
小於
數值的比較是根據數值的大小,因此下列程式碼的條件判斷將成立,並會印出"20>8istrue!":
if(20>8){
print("20>8istrue!");
}
而字串的比較是根據其ASCII內碼的大小,因此下列程式碼的條件判斷亦將成立(由於運算元是「lt」,20及8會被視為字串),並會印出"20lt8isalsotrue!":
if(20lt8){
print("20lt8isalsotrue!");
}
在未進行設定之前,數值變數的預設值是0,而字串變數的預設值是""(空字串)。
若變數$x未定義,則下列程式碼會依運算元而有不同之結果:
$a=$x+1; #$x=0,$a=1
$str="Test".$x; #$x="",$str="Test"
若希望Perl能檢查到未定義之變數,則可以在呼叫Perl時,加入「-w」的選項(w代表warning),例如可用下列方式來執行myprogram.pl:
perl-wmyprogram.pl
Perl
延伸文章資訊
- 1Perl的基本語法
# 不用再指定變數的data type,這樣不是比printf()方便多了嗎? print "Scalar value is $x\n"; # . 是字串加法的運算子,上下這兩行是等效 ...
- 28.3 比對
表示比對不符合$& 代表最後一次成功比對的字串$` 代表比對到的字串之前半段所有字串$' 代表比對到的字串之後半段 ... if ($my_best_like =~ /Perl/) { prin...
- 3Perl 常用的regexp 規則列表 - 朝陽科技大學
搜尋, 精確列印(不要前後文): perl -ne 'print "$1\n" if /..(..)../' 效果約略等同於 grep -Po '..' (但grep 無法print 指定僅印比...
- 4精簡扼要的Perl 課程講義(六):常規表達式(Regular ...
常規表達式(一) (Regular expression) # (1) 基本樣式比對"=~" 與"!~" # 比對字串,成功傳回true # 失敗傳回false "Hello World" =~...
- 5Perl 學習手札- 8. 更多關於正規表示式 - Easun.org