基本上,簡單變量就是一個數據單元,這個單元可以是數字或字符串。 一、整型 1、整型 PERL最常用的簡單變量,由于其與其它語言基本相同,不再贅述。 例: $x = 12345; if (1217 + 116 == 1333) { # statement block goes here } 整型的限制: PERL實際上把整數存在你的計算機中的浮點寄存器中,所以實際上被當作浮點數看待。在多數計算機中,浮點寄存器可以存貯約16位數字,長于此的被丟棄。整數實為浮點數的特例。 2、8進制和16進制數 8進制以0打頭,16進制以0x打頭。 例:$var1 = 047; (等于十進制的39) $var2 = 0x1f; (等于十進制的31) 二、浮點數 如 11.4 、 -0.3 、.3 、 3. 、 54.1e+02 、 5.41e03 浮點寄存器通常不能精確地存貯浮點數,從而產生誤差,在運算和比較中要特別注意。指數的范圍通常為-309到+308。 例:
#!/usr/local/bin/perl $value = 9.01e+21 + 0.01 - 9.01e+21; print ("first value is ", $value, "\n"); $value = 9.01e+21 - 9.01e+21 + 0.01; print ("second value is ", $value, "\n");
---------------------------------------------------------
$ program3_3 first value is 0 second value is 0.01 三、字符串 慣用C的程序員要注意,在PERL中,字符串的末尾并不含有隱含的NULL字符,NULL字符可以出現在串的任何位置。 . 雙引號內的字符串中支持簡單變量替換,例如: $number = 11; $text = "This text contains the number $number."; 則$text的內容為:"This text contains the number 11."
.雙引號內的字符串中支持轉義字符 Table 3.1. Escape sequences in strings.
Escape Sequence | Description | \a | Bell (beep) | \b | Backspace | \cn | The Ctrl+n character | \e | Escape | \E | Ends the effect of \L, \U or \Q | \f | Form feed | \l | Forces the next letter into lowercase | \L | All following letters are lowercase | \n | Newline | \r | Carriage return | \Q | Do not look for special pattern characters | \t | Tab | \u | Force next letter into uppercase | \U | All following letters are uppercase | \v | Vertical tab |
\L、\U、\Q功能可以由\E關閉掉,如: $a = "T\LHIS IS A \ESTRING"; # same as "This is a STRING"
.要在字符串中包含雙引號或反斜線,則在其前加一個反斜線,反斜線還可以取消變量替換,如: $res = "A quote \" and A backslash \\"; $result = 14; print ("The value of \$result is $result.\n")的結果為: The value of $result is 14.
.可用\nnn(8進制)或\xnn(16進制)來表示ASCII字符,如: $result = "\377"; # this is the character 255,or EOF $result = "\xff"; # this is also 255
.單引號字符串 單引號字符串與雙引號字符串有兩個區別,一是沒有變量替換功能,二是反斜線不支持轉義字符,而只在包含單引號和反斜線時起作用。單引號另一個特性是可以跨多行,如: $text = 'This is two lines of text '; 與下句等效: $text = "This is two\nlines of text\n";
.字符串和數值的互相轉換 例1: $string = "43"; $number = 28; $result = $string + $number; # $result = 71 若字符串中含有非數字的字符,則從左起至第一個非數字的字符,如: $result = "hello" * 5; # $result = 0 $result = "12a34" +1; # $result = 13
.變量初始值 在PERL中,所有的簡單變量都有缺省初始值:"",即空字符。但是建議給所有變量賦初值,否則當程序變得大而復雜后,很容易出現不可預料且很難調試的錯誤。
|