Perl語言總結(3)

1.2.4 複雜數據結構

$wife{"Jacob"} = ("Leah", "Rachel", "Bilhah", "Zilpah");   # 錯誤

$wife{"Jacob"} = ["Leah", "Rachel", "Bilhah", "Zilpah"];   # 正確

用[] 中括弧來將一個列表轉換成一個標量。

$wife[0] = ["Leah", "Rachel", "Bilhah", "Zilpah"];  #正確

$wife = ["Leah", "Rachel", "Bilhah", "Zilpah"]; #錯誤

左邊要寫成 $wife{"Jacob"} 或 $wife[0] 表明 wife 是一個數組或散列,只有對數組或散列才能這樣賦值。

訪問方式用 $wife{"Jacob"}[0] 或 $wife[0][0]

我們希望將散列結構也當成一個標量,我們可以使用花括弧來完成,如:

         $kids_of_wife{"Jacob"} = {
              "Leah"   => ["Reuben", "Simeon", "Levi", "Judah", "Issachar", "Zebulun"],
              "Rachel" => ["Joseph", "Benjamin"],
              "Bilhah" => ["Dan", "Naphtali"],
              "Zilpah" => ["Gad", "Asher"],};

訪問 $kids_of_wife{"Jacob"}{"Leah"}[0]   = "Reuben";

1.2.5 簡單數據結構

Perl 用 package 標名命名空間,如

   package Camel;
   $fido = &fetch();

$fido 的真實名字是 $Camel::fido,&fetch 的真實名字是 &Camel::fetch

當我們使用:

   $fido = new Camel "Amelia";

我們實際上調用了 Camel 包中的 &new,它的全名是 &Camel::new。並且當我們使用:
 
   $fido->saddle();

的時候,我們調用了 &Camel::saddle 過程,因爲 $fido 記得它是指向一個 Camel 對象的。這就是一個面向對象程序的工作方法。
 
package Camel 實際上是開始了一個新包。Perl 中用 use 聲明借用其他已有包的名詞和動詞,use 同時也會檢查磁盤上載入的模塊名稱。

實際上,你必須先使用:

   use Camel;

然後才能使用:

   $fido = new Camel "Amelia";

不然的話,Perl 將不知道 Camel 是什麼東西。

可能 Perl 最強大的東西並不在 Perl 本身,而在於 CPAN(Comprehensive Perl Archive Network),CPAN 包含無數的用於實現不同任務模塊

。你不需要知道如何實現這些任務,只需要下載這些模塊,並簡單用下面的方法來使用它們:

   use Some::Cool::Module;

然後你就可以使用模塊中的動詞。

   use strict;

strict 模塊乾的事是更加嚴格地約束 Perl 中的一些規則,這樣你在很多方面必須更明確,而不是讓 Perl 去猜,例如如何確定變量的作用範

圍。

1.2.6 動詞

在 Perl 中過程和函數並沒有硬性的區別。我們經常稱動詞爲操作符(內建)或者是子過程(用戶自定義)(注:歷史上,Perl 要求你在調用

的任何用戶定義子過程的前面加一個與號(&)(參閱早先時候的 $fido = &fetch();)。但是到了 Perl 版本 5,這個與號是可選的了,所以

用戶定義動詞現在可以和內建動詞相同的方法進行調用了($fido = fetch();)。

1.3.1 如何運行

1) %perl -e 'print "Hello, world!/n";'  # Unix 下
   %perl -e "print 'Hello, world!'";    # Win 下

2) %perl gradation           #gradation 文件中寫了 perl 腳本

3) %gradation               #gradation 前加了 #! /usr/bin/perl (#!”shebang”標誌),並且該文件可執行
     Windows 下的 .pl 腳本如果關聯了 perl.exe 解釋器,不用加 shebang 標誌,要加的話就是 #!C:/Perl/bin/perl.exe,就直接能執行 gradation.pl
     #! /usr/bin/perl   -w  # -w 選項會打開所有有用的和有趣的警告信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章