Perl 基本語法


perl 是一種強大的腳本語言,主要用於腳本處理、報表生成,代碼簡潔高效,perl可以用少量代碼實現其他語言很多行代碼才能完成的任務,但是這樣的代價就是 perl 難學易忘,而且閱讀起來比較費力。

這里簡單記錄一些 perl 基本語法:

 

1. 創建 Perl 變量

perl 變量分為三種:標量,列表,哈希

一般字符和數字都是標量,創建標量用美元符號 $ 開頭:

  $var = "str01";  # 字符變量

  $var = 123;   # 數值變量,注意 perl 每條命令都以分號 ‘;’ 結尾

  注意在比較標量大小時,數值變量用 ==,>=,<=; 而字符變量用 eq,gt,lt

創建列表(即數組)用符號 @ 開頭,列表元素用小括號括起來:

  @ary = (aa, bb, cc); 

  訪問列表元素用中括號: 

  print  $ary[1];   # 輸出結果為 bb ,因為角標是從0開始算

創建哈希用符號%開頭,哈希元素用小括號括起來,哈希“鍵--值”對應可使用“key => value”

  %hash = ( k1 => Jack,k2 => Pony );

  訪問哈希元素用花括號:

  say $hash{k2}; # 輸出結果為 Pony

 

 

2. Perl 控制流

perl 控制流語法與C語言類似:

如下圖示例: if, for, while, foreach (foreach 主要用於處理數組)

注意以下幾點:

a) 注意用 foreach 處理數組時,需要小括號將數組名括起來,如上圖中的 (@ary),這個小括號不可省略!

b) 上圖中用的是 say 命令來打印字符,say 與 print 的區別是 say 會自動給行尾加上回車,而 print 不會。

c) 再判斷真假的條件語句中,根據判斷條件的不同類型有幾種情況:

  如果是數值變量:0為假,其他為真;

  如果是字符變量:空字符串為假,其他為真;

  如果是數組:空數組為假,其他為真;

d) foreach 和 while 等循環語句可以省略元素變量,這時在語句體中用符號 $_ 訪問當前元素,示例如下:

  

 

 

3.  Perl 子程序(函數)

  

注意以下幾點:

a) 特殊符號 @_ 是一個數組,函數參數就是保存在這個特殊數組中

b) 函數中定義的變量默認是全局變量,最好加上關鍵字 ’my' 改為局部變量

c) 調用函數時最好在函數名字前加上 ‘&’

d) 允許把調用語句寫在創建子程序前面

所以上面這段程序按照規范的寫法應該是這樣:

  

 

 4. 神奇的鑽石操作符

  假設腳本 run.pl 中的內容如下:

  

   文件 file.txt 的內容如下:

  

   然后執行命令  run.pl  ./file.txt,此時腳本中的鑽石操作符表示 “每次從文件 file.txt 中讀取一行,然后執行打印,接着讀取下一行,再打印,直到讀完最后一行,退出循環 ”

  而如果腳本 run.pl 中的內容是這樣:

  

   同樣執行命令 run.pl  ./file.txt,此時鑽石操作符表示 “ 將文件 file.txt 中的所有行都讀進來,保存成一個列表,列表的每個元素就是文件中的每一行內容,讓后用 foreach 遍歷這個列表 ”

  所以同樣是鑽石操作符,在不同的上下文中就表示不同的含義:

  在 while 語句中,while 的條件只能是標量,所以是標量上下文,所以這時每次從文件中取出一行,作為字符串標量來執行一次循環;

  而在 foreach 語句中,是列表上下文,所以這時直接從文件中取出所有的行,組成一個列表。

   根據上面的規則,來看下面的腳本,如果 run.pl 中的內容如下:

  

  命令reverse 只能接受列表參數,所以是列表上下文,執行命令 run.pl  ./file.txt,結果是分三行依次輸出 three  two  one

 

5. Perl 中的特殊字符

  a) 字符 @_  : 這是一個列表變量,存儲了函數的所有輸入參數

  b) 字符  $_   : 一般用在循環體中,表示循環變量的當前值

 

 

 

 

 

 

 

|----------------------------------|


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM