基本上,簡單變量就是一個數據單元,這個單元可以是數字或字符串。
【 整型 】
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中,所有的簡單變量都有缺省初始值︰"",即空字符。但是建議給所有變量賦初值,否則當程序變得大而複雜後,很容易出現不可預料且很難調試的錯誤。