perl陣列硬引用_Perl個人總結
阿新 • • 發佈:2021-01-06
技術標籤:perl陣列硬引用
Perl個人總結
- 註釋
- 單行註釋
- 語句開頭用字元#進行註釋。
- 多行註釋
- 使用 POD(Plain Old Documentations) 來進行多行註釋。
=pod 註釋 這是一個多行註釋 這是一個多行註釋 這是一個多行註釋 這是一個多行註釋 =cut - 以pod開始,以cut結束。
- =pod、 =cut只能在行首。
- 以=開頭,以=cut結尾。
- =後面要緊接一個字元,=cut後面可以不用。
- 使用 POD(Plain Old Documentations) 來進行多行註釋。
- 單行註釋
- 單引號和雙引號
- 單引號將字串當成原始字串,不會解析轉義字元與變數。(相當於Python中字串前加r)
- 雙引號可以正常解析一些轉義字元與變數。
- 資料型別
- 標量:變數名前加$
- 陣列:變數名前加@
- 雜湊:變數名前加%
- 雜湊是一個無序的 key/value 對集合。(相當於字典)
- 迴圈
- next
- 停止執行從next語句的下一語句開始到迴圈體結束識別符號之間的語句,轉去執行continue語句塊,然後再返回到迴圈體的起始處開始執行下一次迴圈。next [ LABEL ]; - LABEL 是可選的,如果沒有指定 LABEL,next 語句將返回到迴圈體的起始處開始執行下一次迴圈。
- 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///