指令碼入門(2) perl指令碼

2021-10-10 06:36:57 字數 1853 閱讀 7684

一、注釋

=pod

這裡的是注釋

=cut

二、chomp

去掉換行符(\n)

去掉$/

chomp($text=);    #讀入,但不含換行符

三、

$line = ;  #一次讀一行,效能好。

會帶有換行符,通常都會加上chomp()操作符去掉換行符,

四、鑽石尖括號<>

使用兩個尖括號表示讀取來自檔案的輸入,可以從命令列中傳遞檔案到<>。

當不注釋掉 chomp($line)的時候,執行結果如下。可以發現,顯示出來的例子去掉了換行符。

五、檔案讀取

(1) 開啟檔案常用 open()函式,open() or die ().

open(filevar,"file1") or die ("can not oen input .filevar \n");
(2) 讀檔案

$line=;
從檔案中讀取一行資料儲存到簡單變數 $line 中,並把檔案指標向後移動一行。

@array= ;
把檔案的全部內容讀入陣列@array,檔案的每一行為@array的乙個元素。很多時候用chomp(@array=);去掉行末換行符。

(3)寫檔案

open(outfile,">outfile");
>大於號為寫入檔案,後跟檔名。

六、split函式

把字串進行分割並把分割後的結果放入陣列中。

split(/\s+/,$line)表示把字串$line,按空格為界分開。
七、正則匹配(1)刪除以數字開頭的行

%s/^\d.*$//g
(2)刪除以abc開頭的行

%s/^[a|b|c].*$//g

或者%s/^abc.*$//g

(3)刪除以a或者b或者c開頭的行

%s/^[abc].*$//g
(4)刪除重複行

1、將兩行重複行壓縮成一行

%s/^\(.*\)\n\1$/\1/g

\( \)有儲存功能,將括號內的內容儲存。後面的\1表示此內容復現。

2、將連續多次重複行壓縮成一行

%s/^\(.*\)\(\n\1\)\+$/\1/g

出現的\( \)內容,\(.*\)用\1來表示,\(\n\1\)可以用\2來表示

八、函式式

s/替換內容/\=函式式

%s/\/\=line(".")

<>表示詞首或詞尾,line(".")表示行號

2 Perl 數字標量

2 1 數字 雖然標量在大多數情況下不是數字就是字串,現在我們最好還是將它們分開來看待。我們首先討論數字,再討論字串。2 1 1 所有數字內部的格式一致 在下面幾段中,你將看到整數 如255,2001 等 和浮點數 有小數點的實數,如3.14159,1.35x1025 但在內部,perl 都把 它們...

2 Perl 標量資料概述

在英語以及許多其它的語言中,需要區別單數和複數。作為一門由語言學家發明的語言,perl 也是類似的。同一般情況一樣,perl 也有資料型別 標量 標量是perl 中最簡單的資料型別。大多數的標量是數字 如255 或3.25e20 或者字串 如hello 或者蓋茨堡位址 你也許把數字和字串看作不同的事...

指令碼刪除末尾字元 perl指令碼語言入門

這篇文章的目的是能夠讀懂簡單的perl指令碼 perl,一種功能豐富的計算機程式語言,執行在超過100種計算機平台上,適用廣泛,從大型機到便攜裝置,從快速原型建立到大規模可擴充套件開發。perl不需要編譯器和鏈結器來執行 你要做的只是寫出程式並告訴perl來執行而已。這意味著perl對於小的程式設計...