Perl語言中的變數類型

來源:互聯網
上載者:User

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裡面的指標是有引用計數的。也就是說,如果一個資料可以記住自己被幾個指標引用,當沒有指標引用時這個資料會自動釋放記憶體。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.