1. 程式人生 > 其它 >perl陣列硬引用_Perl個人總結

perl陣列硬引用_Perl個人總結

技術標籤:perl陣列硬引用

Perl個人總結

  • 註釋
    • 單行註釋
      • 語句開頭用字元#進行註釋。
    • 多行註釋
      • 使用 POD(Plain Old Documentations) 來進行多行註釋。
        =pod 註釋 這是一個多行註釋 這是一個多行註釋 這是一個多行註釋 這是一個多行註釋 =cut
      • 以pod開始,以cut結束。
      • =pod、 =cut只能在行首。
      • 以=開頭,以=cut結尾。
      • =後面要緊接一個字元,=cut後面可以不用。
  • 單引號和雙引號
    • 單引號將字串當成原始字串,不會解析轉義字元與變數。(相當於Python中字串前加r)
    • 雙引號可以正常解析一些轉義字元與變數。
  • 資料型別
    • 標量:變數名前加$
    • 陣列:變數名前加@
    • 雜湊:變數名前加%
      • 雜湊是一個無序的 key/value 對集合。(相當於字典)
  • 迴圈
    • next
      • 停止執行從next語句的下一語句開始到迴圈體結束識別符號之間的語句,轉去執行continue語句塊,然後再返回到迴圈體的起始處開始執行下一次迴圈。next [ LABEL ]; - LABEL 是可選的,如果沒有指定 LABEL,next 語句將返回到迴圈體的起始處開始執行下一次迴圈。
  • last
    • 退出迴圈語句塊,從而結束迴圈。
  • 引用
    • 變數名前加,就得到了這個變數的一個引用。
    • 取消引用可以根據不同的型別使用 $, @ 或 % 來取消。
    • 引用函式
      • 函式引用格式: &
      • 呼叫引用函式格式: & + 建立的引用名。
  • .(點運算子)
    • 拼接操作
  • 子程式(函式)
    • 使用sub關鍵字宣告。
    • 向子程式傳遞引數
      • 程式引數使用特殊陣列 @_ 標明。
      • 子程式第一個引數為 $_[0], 第二個引數為 $_[1], 以此類推。
    • 向子程式傳遞列表
      • 如果我們需要同時傳入標量和陣列引數時,需要把列表放在最後一個引數上。
      • 傳入多個數組和雜湊時,會導致丟失獨立的標識。(子程式自動合併引數為@_)。
    • 向子程式傳遞雜湊
      • 當向子程式傳遞雜湊表時,它將複製到 @_ 中,雜湊表將被展開為鍵/值組合的列表。
  • 子程式返回值
    • 使用 return 語句來返回函式值。
    • 如果沒有使用 return 語句,則子程式的最後一行語句將作為返回值。
  • 私有變數
    • 使用my 關鍵字宣告私有變數。
    • 如果在一個 block 中有一個 my 修飾的變數和外界的一個變數同名,而且又需要在這個 block 中使用外界變數時,用 our 修飾 our $global,那麼該 block 中接下來出現的所有 $global 變數都是外界的 global變數。
  • 變數的臨時賦值
    • 用 local 為全域性變數提供臨時的值,在退出作用域後將原來的值還回去。
  • 靜態變數
    • state關鍵字將區域性變數變得持久。
  • 子程式呼叫上下文
    • 子程式呼叫過程中,會根據上下文來返回不同型別的值。
  • 檔案操作
    • open 函式
open FILEHANDLE, EXPR open FILEHANDLE
 
      • FILEHANDLE:檔案控制代碼,用於存放一個檔案唯一識別符號。
      • EXPR:檔名及檔案訪問型別組成的表示式。
    • sysopen 函式
 sysopen FILEHANDLE, FILENAME, MODE, PERMS sysopen FILEHANDLE, FILENAME, MODE
 
      • MODE:檔案訪問型別。
      • PERMS:訪問許可權位(permission bits)。
  • die
    • 終止程式執行,並輸出錯誤資訊。
  • chomp
    • 刪除換行符
  • chop
    • 刪除最後一個字元
  • while(<FILEHANDLE>)
  • 從檔案控制代碼FILEHANDLE依次每行讀取資料,結果儲存在$_中。
  • 如果沒有設定檔案,則尖括號運算子從檔案控制代碼STDIN中讀取資料。
  • 特殊變數
  • $_ : 包含了預設輸入和模式匹配內容。
    • print 在不指定輸出變數,預設情況下使用的也是 $_。
  • ARGV(@ARGV)
    • perl將perl命令列的引數列表放進陣列ARGV(@ARGV)中。
  • 正則表示式
    • =~ 表示相匹配,!~ 表示不匹配。
    • 匹配:m//(還可以簡寫為//,略去m)
    • perl處理完後會給匹配到的值存在三個特殊變數名
      • $`: 匹配部分的前一部分字串
      • $&: 匹配的字串
      • $': 還沒有匹配的剩餘字串
  • 替換:s///
  • 轉化:tr///