Perl語言中的變數有以下五種:
標量,指標,數組,雜湊表(hash)和控制代碼。
一、標量
我們先來看看標量,標量是Perl語言中最簡單的一種資料類型。這種資料類型的變數可以是數字,字串,浮點數,不作嚴格的區分。在使用時在變數的名字前面加上一個“$”,表示是標量,相當於scalar中的第一個S。
使用以下格式進行定義:
$myfirst=123; #數字123
$mysecond="123";#字串123
$mythird="$myfirst,$mysecond";#字串123,123
$myforth='$myfirst,$mysecond';#字串$myfirst,$mysecond
數字類型的標量可以使用0開頭代表是8進位,用0x開頭代表是16進位。例如:
$var1=017;#十進位的15
$var2=0xf;#十進位的15
還可以使用下面的格式:
$var3=123_456_7; #1234567
浮點數可以使用以下定義方式:
$var4=3.4;
$var5=4.3e+21;
$var6=234E345;
Perl語言中的字串使用一個標量來表示,定義方式和c很像,但是在Perl裡面字串不是用0來表示結束的。而且使用雙引號和單引號定義的字串是不一樣的。使用雙引號定義的字串裡面出現的變數名會進行替換,而且可以出現“\n\r\t”等控制字元。而用單引號定義的就不可以了使用反斜線引導的控制命令了(當然還可以使用反斜線引道單引號和反斜線),文本會按照字串原來的樣子儲存。
但是用單引號定義可以使用多行文本,如下所示:
$var7='這是一個使用
多行字串文本
的例子';
$var8='\'\\'; #字串'\
二、數組
在Perl語言中數組使用“@”引導,“@”的意義應該是相當於array中的第一個a吧(嘻嘻,猜的)。數組初始化使用()。我們可以採用如下方法初始化數組:
@var9=(1,2,3,4,5);
而當引用數組中的元素時則使用下面的格式:
$var10=$var9[1];
數組前面的引導字元變成了“$”,表示這裡是引用數組中的元素。
如果使用“@”作引導字元,那麼剛才的例子就會返回數組的長度。例如:
$length=@var9;#則$length會返回數組長度也就是數組的元素個數5
三、雜湊表(hash)
雜湊表是一種很特別的資料結構,我在學習資料結構時見過,叫做散列(Set),在使用Perl語言之前,我在borlandC++中見過一種類似的class,也叫做Set。在JavaScript中也提供了相似的資料結構,叫做關連數組AssociatedArray。
雜湊表用“%”引導。定義方法如下:
%var11=("hello"=>"哈羅","nihao"=>"你好");
使用方法如下:
print$var11{"hello"};#輸出哈羅$var11{"nihao"}="你好";
還可以使用下面的方法定義:
%var12=("hello","哈羅","nihao","你好");
這個方法的結果與上面的結果相同,但是我還是喜歡第一種方法,而且建議你也使用第一種方法。
四、控制代碼
控制代碼是一種特殊的資料,用來儲存系統資源的指標,例如檔案,目錄,管道,socket等等。在最新的Perl語言中,實際上可以不使用這種資料。控制代碼類型沒有引導字元。一般情況下大家習慣使用大寫字母來標明控制代碼類型。例如下面的例子開啟一個檔案,讀出一行,然後關閉。
open(FILEHANDLE,"test.htm");
$templine=<FILEHANDLE>;
close(FILEHANDLE);
這裡<>起從控制代碼中讀出一行的作用。
五、指標
Perl語言裡面的指標分為兩種類型,一種成為軟指標,另一種稱為硬指標。下面將主要介紹一下硬指標。在Perl裡面使用“\”來產生指標。如下面的例子:
$vavr13="hello";
$pointerto=\$var13;
這時$pointerto就是一個指向$var13的指標了。訪問指標指向的資料可以使用下面的方法。print$$pointerto;也就是加上一個$就可以了。Perl裡面的指標與c裡面的不同,Perl裡面的指標是有引用計數的。也就是說,如果一個資料可以記住自己被幾個指標引用,當沒有指標引用時這個資料會自動釋放記憶體。