|
一、整型 二、浮點數(shù) 三、字符串
基本上,簡單變量就是一個數(shù)據(jù)單元,這個單元可以是數(shù)字或字符串。 一、整型
1、整型
??PERL最常用的簡單變量,由于其與其它語言基本相同,不再贅述。 ??
例: ?? $x = 12345; ?? if (1217 + 116 == 1333)
{ ?? # statement block goes here ??
} ??整型的限制: ??
PERL實際上把整數(shù)存在你的計算機中的浮點寄存器中,所以實際上被當作浮點數(shù)看待。在多數(shù)計算機中,浮點寄存器可以存貯約16位數(shù)字,長于此的被丟棄。整數(shù)實為浮點數(shù)的特例。 2、8進制和16進制數(shù) ?
8進制以0打頭,16進制以0x打頭。 ? 例:$var1 = 047; (等于十進制的39) ? $var2 =
0x1f; (等于十進制的31) 二、浮點數(shù)
? 如 11.4 、 -0.3 、.3 、
3. 、 54.1e+02 、 5.41e03 ?
浮點寄存器通常不能精確地存貯浮點數(shù),從而產(chǎn)生誤差,在運算和比較中要特別注意。指數(shù)的范圍通常為-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字符可以出現(xiàn)在串的任何位置。 .
雙引號內(nèi)的字符串中支持簡單變量替換,例如: ? $number = 11; ? $text = "This text
contains the number $number."; ? 則$text的內(nèi)容為:"This text contains
the number 11."
.雙引號內(nèi)的字符串中支持轉(zhuǎn)義字符 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關(guān)閉掉,如: ?$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")的結(jié)果為: ??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
.單引號字符串 ??單引號字符串與雙引號字符串有兩個區(qū)別,一是沒有變量替換功能,二是反斜線不支持轉(zhuǎn)義字符,而只在包含單引號和反斜線時起作用。單引號另一個特性是可以跨多行,如: ??$text
= 'This is two ??lines of text ??';
??與下句等效: ??$text = "This is two\nlines of
text\n";
.字符串和數(shù)值的互相轉(zhuǎn)換 ??例1: ??$string =
"43"; ??$number = 28; ??$result = $string +
$number; # $result =
71 ??若字符串中含有非數(shù)字的字符,則從左起至第一個非數(shù)字的字符,如: ??$result =
"hello" * 5; # $result = 0 ??$result = "12a34" +1; # $result
=
13
.變量初始值 ??在PERL中,所有的簡單變量都有缺省初始值:"",即空字符。但是建議給所有變量賦初值,否則當程序變得大而復雜后,很容易出現(xiàn)不可預料且很難調(diào)試的錯誤。
|
|