Perl語言總結 3

2021-04-21 03:10:09 字數 2067 閱讀 6459

1.2.4 複雜資料結構

$wife = ("leah", "rachel", "bilhah", "zilpah");   # 錯誤

$wife = ["leah", "rachel", "bilhah", "zilpah"];   # 正確

用 中括弧來將乙個列表轉換成乙個標量。

$wife[0] = ["leah", "rachel", "bilhah", "zilpah"];  #正確

$wife = ["leah", "rachel", "bilhah", "zilpah"]; #錯誤

左邊要寫成 $wife 或 $wife[0] 表明 wife 是乙個陣列或雜湊,只有對陣列或雜湊才能這樣賦值。

訪問方式用 $wife[0] 或 $wife[0][0]

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

$kids_of_wife = ;

訪問 $kids_of_wife[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 選項會開啟所有有用的和有趣的警告資訊

perl語言入門總結 第3章 列表與陣列

1 列表list指的是標題的有序集合,而陣列 array 則是儲存列表的變數。更精確地說,列表指的是資料,而陣列指的是變數。訪問陣列中的元素 fred 0 yabba fred 1 dabba fred 2 doo number 2.71111 print fred number 1 dabba 如...

perl語言入門總結 第2章

what steak print fred ate n s.n 布林值如果是數字0為假,如果是空字串 為假,如果即不是數字也不是字串,那就先轉成數字或字串再行判斷。字串 0 也為假 獲取使用者輸入 line 去除最右邊換行 text a line n chomp text print text un...

總結 Perl技巧

1.perl超時機制eval sub alarm 10 my startcmdresult qx tmpcmd alarm 0 if timeout 2.忽略sigchld訊號,避免產生殭屍程序 sig ignore 3.等待 sub show flower print r local 0 4.pe...