Perl 知識點查詢

poplarbbs發表於2009-11-28

第1章 開始學習Perl

 

  1. 以#開始的語句表示註釋。Perl語句以分號表示結束。
  2. Perl語言中也有轉義字元,這點與C語言類似。
  3. $表示該符號後所跟的字串是一個標量變數,即該變數只能儲存一個數值或者字串。 Perl語言中有兩種變數,標量變數和陣列變數。
  4. 在Unix中,所有程式都擁有三個開啟的檔案:STDIN(標準輸入) STDOUT(標準輸出) STDERR(標準錯誤)。Perl當然可以使用這三個。
  5. 使用chomp命令可以去掉多餘的資料,主要是針對回車和換行。每個系統都配置了該命令,用於去掉註釋的行末尾符號。
  6. Perl語言用於字串比較的操作符。eq(等於) ge(大於等於) gt(大於) le(小於等於) lt(小於) ne( 不等於) cmp(字串比較)。
  7. 在Unix中,可以把Perl指令碼轉換成一個可執行的程式。

第2章 Perl基礎知識

 

  1. 控制Perl指令碼--while命令, 和C語言的一樣。
  2. 控制Perl指令碼--until命令,實現與while正好相反的控制,只要條件為假,程式塊不斷被執行,直到條件為真結束。
  3. 控制Perl指令碼--if命令,和C語言的一樣。
  4. 控制Perl指令碼--unless命令,與if語句相反,當條件不為真是執行。語句格式與if的一樣。
  5. 控制Perl指令碼--for迴圈,和C語言的一樣。
  6. 控制Perl指令碼--foreach語句,使得對列表或陣列中的每一個元素進行迴圈。
  7. Perl語言的所有數學運算都以雙精度的浮點數進行。如果想使用整數操作,則需要在程式塊中增加這樣的語句:use integer;
  8. 單引號所引起的為字串本身,Perl對單引號中的內容提供了較少的解釋。
  9. 雙引號中的內容,Perl對其進行較多的解釋,可以有轉義字元,用變數的值替代變數。
  10. 如果資料本身已經有引號,可以使用q操作符生成字串,產生一個單引號的字串。$var=q('Single-quoted string');
  11. qq可以資料本身含有雙引號的字串,用法與q相似。
  12. 字串函式——length:返回字串中的字元數目。
  13. 字串函式——chr:返回一個給定ASCII碼數值對應的字元。
  14. 字串函式——uc:把一個小寫字串轉換成大寫。
  15. 字串函式——index:返回一個子串在字串出中第一次出現的位置。
  16. 字串函式——rindex:返回一個子串在字串中第一次出現的位置,從後往前查詢。
  17. 字串函式——substr:從一個字串中返回一個子串,它通常同index,rindex一起使用。$new_str=substr($string,$offset,$length);
  18. 字串操作符——$s1.$s2:將$s2連線在$s1的末尾並返回。
  19. 字串操作符——$s1 × value:將$s1重複value次並返回。
  20. 字串操作符——$s1.=$s2:將$s2新增到$s1的末尾。
  21. Perl變數主要分為三類:標量,陣列和雜湊。分別用$,@和%來區分。
  22. Perl認為@array和$array是兩個完全不同且沒有任何關係的值。$array[value]指的是@array的一個元素,而不是$array。
  23. 可以使用$#array語法確定一個陣列中元素的個數。$#array實際上指的是最後一個元素,在確定陣列元素時,需要將其加1。
  24. 陣列操作函式——$number=scalar(@array);獲得array陣列的長度。
  25. 陣列操作函式——splice,允許拼接陣列,即允許將陣列中的現有元素替換成新元素。splice(@array,$offset,$length,$replace1,$replace2,……)。返回消除的元素。
  26. 陣列操作函式——reverse,顛倒陣列中元素的順序。
  27. 陣列操作函式——sort,對陣列進行排序。
  28. 雜湊(又叫關聯陣列),允許通過關鍵字來訪問元素。雜湊儲存了一組關鍵字/值。用%標記雜湊變數。
  29. 有關雜湊的操作——keys,返回雜湊中的所有關鍵字的列表,可以通過這個表提取所有關鍵字名。
  30. 有關雜湊的操作——values,類似於keys操作符,從雜湊中提取所有值。
  31. 有關雜湊的操作——delete,從雜湊中去掉一個關鍵字/值對。
  32. 有關雜湊的操作——exists,報告雜湊中是否存在某一個給定的關鍵字。
  33. %ENV是最有用的雜湊,它儲存了系統的環境變數。
  34. <ARGV>表示開啟命令列中所列出的所有檔案。@ARGV是一個包含所有命令列引數的Perl陣列。Perl命令和指令碼檔案的名字並不是陣列@ARGV中的一個部分。特殊變數$0包含有正在執行的Perl指令碼名字。
  35. 子例程是一個有名字的Perl程式碼段。用sub語句來定義子例程。用&符號呼叫子例程。
  36. 子例程可以通過@_陣列訪問引數。

內部變數查詢

$- 當前頁可列印的行數,屬於Perl格式系統的一部分

$! 根據上下文內容返回錯誤號或者錯誤串

$” 列表分隔符

$# 列印數字時預設的數字輸出格式

$$ Perl直譯器的程式ID

$% 當前輸出通道的當前頁號

$& 與上個格式匹配的字串

$( 當前程式的組ID

$) 當前程式的有效組ID

$* 設定1表示處理多行格式.現在多以/s和/m修飾符取代之.

$, 當前輸出欄位分隔符

$. 上次閱讀的檔案的當前輸入行號

$/ 當前輸入記錄分隔符,預設情況是新行

$: 字元設定,此後的字串將被分開,以填充連續的欄位.

$; 在模擬多維陣列時使用的分隔符.

$? 返回上一個外部命令的狀態

$@ Perl直譯器從eval語句返回的錯誤訊息

$[ 陣列中第一個元素的索引號

$\ 當前輸出記錄的分隔符

$] Perl直譯器的子版本號

$^ 當前通道最上面的頁面輸出格式名字

$^A 列印前用於儲存格式化資料的變數

$^D 除錯標誌的值

$^E 在非UNIX環境中的作業系統擴充套件錯誤資訊

$^F 最大的檔案捆述符數值

$^H 由編譯器啟用的語法檢查狀態

$^I 內建控制編輯器的值

$^L 傳送到輸出通道的走紙換頁符

$^M 備用記憶體池的大小

$^O 作業系統名

$^P 指定當前除錯值的內部變數

$^R 正規表示式塊的上次求值結果

$^S 當前直譯器狀態

$^T 從新世紀開始算起,腳步本以秒計算的開始執行的時間

$^W 警告開關的當前值

$^X Perl二進位制可執行程式碼的名字

$_ 預設的輸入/輸出和格式匹配空間

$| 控制對當前選擇的輸出檔案控制程式碼的緩衝

$~ 當前報告格式的名字

$` 在上個格式匹配資訊前的字串

$’ 在上個格式匹配資訊後的字串

$+ 與上個正規表示式搜尋格式匹配的最後一個括號

$< 當前執行直譯器的使用者的真實ID

$ 含有與上個匹配正規表示式對應括號結果

$= 當前頁面可列印行的數目

$> 當前程式的有效使用者ID

包含正在執行的指令碼的檔名

$ARGV 從預設的檔案控制程式碼中讀取時的當前檔名

%ENV 環境變數列表

%INC 通過do或require包含的檔案列表

%SIG 訊號列表及其處理方式

@_ 傳給子程式的引數列表

@ARGV 傳給指令碼的命令列引數列表

@INC 在匯入模組時需要搜尋的目錄列表

$-[0]和$+[0] 代表當前匹配的正規表示式在被匹配的字串中的起始和終止的位置

 

轉自:http://frenchen.blog.163.com/blog/static/10919864720093175614345/

相關文章