perl學習之 字串函式

2021-07-23 21:24:18 字數 2886 閱讀 4418

一、開啟、關閉檔案

open的返回值用來確定開啟檔案的操作是否成功,當其成功時返回非零值,失敗時返回零,因此可以如下判斷:

if (open(myfile, "myfile")) 

當檔案操作完畢後,用close(myfile); 關閉檔案。

讀:open(檔案控制代碼,"《檔名")  open(檔案控制代碼,"檔名")   前提檔案必須已經存在,否則會返回0,出錯資訊在!中

寫:open(檔案控制代碼,">檔名"),檔案如果不存在,那麼建立之,如果存在,內容被清空,長度截為0,!中有出錯資訊。

追加:open(檔案控制代碼,">>檔名"),基本同寫,但有一點,檔案中的內容不會被清空,新的內容會追加到原文後面。

讀寫:open(檔案控制代碼,"+《檔名"),通過「+<」模式,你可以既可以讀檔案,又可以寫檔案。你可以通過tell() 函式在檔案內部移動,通過seek()函式進行定位。如果檔案不存在,就會被建立。如果檔案已經存在,原來的資料不會被清除。

二、讀檔案

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

語句@array = ;把檔案的全部內容讀入陣列@array,檔案的每一行(含回車符)為@array的乙個元素。 

主要使用以下三個函式:

1__ve_item__ø         tell函式

函式tell用來確定檔案中當前位置(亦即第一條記錄後的那個位元組)。tell返回的值也是記錄長度的位元組數。

length = tell ( file );

如一條記錄有3個位元組長度,位元組0,1和2。因而,檔案中的當前位置是3,這就是一條記錄的長度。

1__ve_item__ø         seek函式

如果記錄的長度已知,函式seek可用於查詢檔案中的任何記錄。

函式seek接受3個引數:filename、offset和method。

offset是在檔案中確定新的當前位置時,所需移動的位元組數。這個數一般可以這樣計算:所需跳過的記錄數乘以記錄的位元組數。

method指出要開始查詢的位置:

0表示從檔案開始處計算;

1表示從當前位置開始計算;

2表示從檔案結束出開始計算(這種情況下,offset一般為負數)。

例如:seek  ( file,  5*length, 0 )

執行後,他會使用計算式5*length和method為0來跳過檔案的前5條記錄,把第6條記錄作為檔案的當前位置

1__ve_item__ø         truncate函式

truncate函式接收兩個引數:乙個檔案控制代碼和乙個檔案位元組位置。它從檔案位元組處開始移除記錄,直到檔案結束。

perl字串處理函式

perl字串處理函式index

呼叫語法position=index(string,substring,position);

解說返回子串substring在字串string中的位置,如果不存在則返回-1。引數position是可選項,表示匹配之前跳過的字元數,或者說從該位置開始匹配。

perl字串處理函式rindex

呼叫語法position=rindex(string,substring,position);

解說與index類似,區別是從右端匹配。

perl字串處理函式length

呼叫語法num=length(string);

解說返回字串長度,或者說含有字元的數目。

perl字串處理函式pos

呼叫語法offset=pos(string);

解說返回最後一次模式匹配的位置。

perl字串處理函式substr

呼叫語法substr(expr,skipchars,length)

解說抽取字串(或表示式生成的字串)expr中的子串,跳過skipchars個字元,或者說從位置skipchars開始抽取子串(第乙個字元位置為0),子串長度為length,此引數可忽略,意味著取剩下的全部字元。

當此函式出現在等式左邊時,expr必須為變數或陣列元素,此時其中部分子串被等式右邊的值替換。

perl字串處理函式study

呼叫語法study(scalar);

解說用一種內部格式提高變數的訪問速度,同一時刻只對乙個變數起作用。

perl字串處理函式lc

uc呼叫語法retval=lc(string);

retval=uc(string);

解說將字串全部轉換成小/大寫字母。

perl字串處理函式lcfirst

ucfirst

呼叫語法retval=lcfirst(string);

retval=ucfirst(string);

解說將第乙個字母轉換成小/大寫。

perl字串處理函式quotameta

呼叫語法newstring=quotemeta(oldstring);

解說將非單詞的字母前面加上反斜線(\\)。

語句:string=quotemeta(string);

等效於:string=~s/(\\w)/\\\\1/g;

常用於模式匹配操作中,確保字串中沒有字元被看作匹配操作符。

perl字串處理函式join

呼叫語法join(joinstr,list);

解說把字串列表(陣列)組合成乙個長的字串,在每兩個列表元素間插入串joinstr。

perl字串處理函式sprintf

呼叫語法sprintf(string,fields);

解說與printf類似,區別是結果不輸出到檔案,而作為返回值賦給變數。

例子num=26;

outstr=sprintf("%d=%xhexadecimalor%ooctal\",num,num,num);

print(outstr);

結果輸出26=1ahexadecimalor32octal

Perl函式 字串相關函式

字串的內建函式有 chomp,chop,chr,crypt,fc,hex,index,lc,lcfirst,length,oct,分為幾類 字元處理類函式 字元位置索引 進製轉換類 其他類 和chomp有點類似。1.修改字串 str abnc print chop str 輸出c print str...

Perl 字串擷取函式substr

在編寫perl程式的時候,我們有時需要擷取乙個字串中的部分內容。這個時候通常會使用 substr 函式實現這個功能。函式引數 substr 待擷取字串,擷取起始位置,擷取終了位置 view plaincopy to clipboardprint?str testtest print substr s...

perl 字串操作

字串陣列元素賦值 tmp qw aaa bbb kkk 9000 相當於 tmp aaa bbb kkk 9000 字串比較,絕不能用 要用eq macg localhost perltest vi tip.pl usr bin perl print input while chomp input ...