perl學習筆記3 z

2021-04-22 14:17:37 字數 2095 閱讀 7254

1.雜湊片斷,如果在花括號中提供了多鍵,便會返回與那些鍵相對應的值,結果生成的列表會被當作乙個陣列對待。所以無論是雜湊片斷還是陣列片斷,都要採用

@符號。

2.應用於雜湊的函式:

økeys

函式可返回乙個列表,其中包含了雜湊內的所有鍵值。

øvalues

函式也能返回乙個列表,其中包含了雜湊中的所有值。

øeach

函式每次呼叫只返回乙個鍵值對,並把這個鍵值對變成乙個列表。在列表中,第乙個元素是鍵,第二個元素是值。

each

能自動跟蹤其在雜湊中的位置,所以,每次呼叫該函式時,返回的都是乙個新的鍵值對。一旦沒有更多的鍵值對,就會返回

undef

值。如果有開始新的迴圈,那麼下次將會從頭開始。無論

keys

還是values函式ø

在雜湊中使用

reverse

函式時,雜湊的鍵和值會發生對調,但要在鍵值在所有雜湊中是唯一的。

ødelete

函式從雜湊中刪除乙個元素。

ø檢測乙個變數是否存在使用函式

exists。ø

判斷乙個變數是否已被賦值使用

defined

函式。ø

乙個元素從未被建立過,可以認為是「不存在」;如果乙個元素已經被建立,但卻從未給它賦乙個值,那麼可認為它是「未定義」。

3.foreach

迴圈控制

foreach

控制變數

(列表)

4.特殊變數$_

特殊變數

$_是許多

perl

函式的預設引數,也是許多

perl

控制結構的預設控制變數。

5.grep

和map

grep

函式可在乙個列表中查詢,並建立乙個全新的列表,其中只包含符合指定條件的元素。注意

grep

要求同時指定乙個條件表示式以及乙個列表作為自己的引數。

newlist = grep (

條件表示式,列表);

利用map

函式,可以建立乙個列表,其中包含的每乙個元素都是某個函式作用於指定列表中每個元素後的產物。

newlist = map (

函式,列表);

6.當處於乙個標量使用場合,陣列返回陣列的長度。例如:

$mean = $total / @array;

7.next

語句:假如在

while,until,for

或foreach

迴圈結構中執行

next

語句,會直接跳過在那個結構中剩下的語句,並開始迴圈的下一次迴圈。在

while

和until

結構中,執行

next

語句之後,會緊接著檢測迴圈是否應繼續執行下去的條件。而在

for結構中,首先會執行自增表示式,在對迴圈繼續條件進行檢測。在

foreach

結構中,控制變數會被設成列表中的下乙個元素。

8.last語句在

while,until,for

或foreach

結構中執行

last

語句,會造成立即退出當前結構。

9.redo語句在

while,until,for

或foreach

結構中使用

redo

語句,會馬上返回迴圈主體的第一條語句,而且不會對迴圈條件進行檢測。比如,用在需要讓當前迴圈從頭再來一遍。

例如:#!/usr/bin/perl

$number=1;

while ( $number <= 5 )

}

一旦執行程式中的

redo

語句,程式控制便會自

while

語句中的

{處繼續;且不會對迴圈是否繼續的條件進行檢測。所以,上面程式的輸出結果就是1到

10,而不是1到

5。

使用perl分析html檔案(3) z

完成 製作網頁的最後的要求是頁面外觀的美觀,遺憾的是,html treebuilder或任何相關的模組都不能幫助完成對這個要求的評分,所以,本文的作者只能自己手動給最後乙個要求評分。但是他有希望用perl在這項工作上幫點忙,所以就有了下面的一段 my input dountil input s d ...

perl學習筆記1 z

陣列1 在perl 中,如果將乙個非整數值當作陣列的下標使用,不會造成語法錯誤,但仍然會造成邏輯錯誤。例如,在乙個陣列下標表示式中,乙個非數字的字串下標求值結果為零,因此,表示式返回的肯定是陣列中的第乙個元素。2 對於陣列來說,並不一定要求其中的所有元素都具有同樣的型別。不過,所有陣列元素至少都得為...

perl學習筆記4 z

1 塊標籤 對任何迴圈塊來說,除了 do while 或者do until 結構外,他們都可以設定乙個 標籤 label 除了來對 塊作簡要說明之外,這個標籤還可以做 next last 和redo 等迴圈控制命令的乙個 目的地 或 目標 使用。注意,在指定標籤名的時候,在它後面要跟乙個冒號 且標籤...