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