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字串比較的疑問 - 酷!學園
perl字串比較的疑問. « 回覆#2 於: 2004-08-31 16:29 ». twu2大哥你說的方法我也有試過.... 好比說檔案裡面擷取的字串是(exe) 而我要比對的字串 ...
- 2Perl 常用的regexp 規則列表 - 朝陽科技大學
搜尋, 精確列印(不要前後文): perl -ne 'print "$1\n" if /..(..)../' 效果約略等同於 grep -Po '..' (但grep 無法print 指定僅印比...
- 3Perl的基本語法
# 不用再指定變數的data type,這樣不是比printf()方便多了嗎? print "Scalar value is $x\n"; # . 是字串加法的運算子,上下這兩行是等效 ...
- 4Perl 模糊字串比對(Approximate Matching)String::Approx 模組
這裡介紹如何使用Perl 的 String::Approx 模組進行模糊字串比對(approximate matching)。 模糊搜尋是實務上常用的搜尋方法,當使用者輸入的關鍵字 ...
- 52-3 數值和字串的互換與比較
但在其他少數情況下,數值和字串的通用性可能導致程式的錯誤,此時就需要程式設計者的介入。 以下是Perl 的比較運算元(Comparison Operators):. 比較運算說明, 用於數值 ...