perl 檔案操作總結_perl

來源:互聯網
上載者:User

一、開啟、關閉檔案

    open的傳回值用來確定開啟檔案的操作是否成功,當其成功時返回非零值,失敗時返回零,因此可以如下判斷:
    if (open(MYFILE, "myfile"))
    {
        # here is what to do if the file opened successfully
    }
    當檔案操作完畢後,用close(MYFILE); 關閉檔案。
    讀:open(檔案控制代碼,"<檔案名稱")  open(檔案控制代碼,"檔案名稱")   前提檔案必須已經存在,否則會返回0,出錯資訊在!中
    寫:open(檔案控制代碼,">檔案名稱"),檔案如果不存在,那麼建立之,如果存在,內容被清空,長度截為0,!中有出錯資訊。
    追加:open(檔案控制代碼,">>檔案名稱"),基本同寫,但有一點,檔案中的內容不會被清空,新的內容會追加到原文後面。
    讀寫:open(檔案控制代碼,"+<檔案名稱"),通過“+<”模式,你可以既可以讀檔案,又可以寫檔案。你可以通過tell() 函數在檔案內部移動,通過seek()函數進行定位。如果檔案不存在,就會被建立。如果檔案已經存在,原來的資料不會被清除。

二、讀檔案        

    語句line = <MYFILE>;從檔案中讀取一行資料存放區到簡單變數line中並把檔案指標向後移動一行。
    語句@array = <MYFILE>;把檔案的全部內容讀入數組@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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.