perl 檔案控制代碼

2021-07-26 04:52:22 字數 1940 閱讀 7351

控制代碼handle 分為檔案控制代碼和目錄控制代碼,檔案控制代碼實際上包含檔案,程序和套接字的讀寫。

檔案控制代碼的操作步驟

open(fd,"filename");

@lines=;

close(fd);

open()由以下幾個用法

open(fd,"> filename") 寫資料進檔案

open(fd,">> filename") 追加資料進檔案

open(fd,"filename") 讀檔案

open(fd,"process |") 讀程序結果

open(fd,"| to process") 往程序中寫資料,不過對windows系統寫會有問題

$line=獲取起始行

如果要遍歷整個檔案

while (defined $line=) {}

@lines=將整個檔案放入lines陣列中

可以使用filehandle包,可以避免變數覆蓋的現象。

use filehandle;

$filehandlename= new filehandle("filename"); l

ine=<

line=<

filehandlename>;

close() 關閉檔案控制代碼

實際上,perl會在控制代碼超出範圍或程式結束時,自動關閉。

寫入操作

print (@arrayname) 或 print filehandlename (@arrayname)

也可以用以下方式來寫入

foreach $line(@arrayname)

使用 li

ne的好

處是,程

序在執行

時,會將

line的好處是,程式在執行時,會將

line的值立即放入檔案中。而使用@arrayname的方式會先放入快取中累積,如果出現程序中斷,會倒是輸出資料丟失。如果要避免這個問題出現可以把$|設定為1

對二進位制檔案的讀寫

使用binmode filehandle

具體例項

open(in_fd,"test.gif");

open(out_fd," > copy.gif");

binmode(in_fd);

binmode(out_fd);

while(read(in_fd,$buffer,1024)

close(in_fd);

close(out_fd);

select(filehandle) 用於設定輸出的預設控制代碼

在select指定控制代碼後,隨後輸出在預設情況下,會輸出到指定的控制代碼

open(fd,"> newfile");

select(fd);

print "test"; #將test新增到newfile中

select(stdout);

print "ok";  #將ok輸出到螢幕

flock()檔案加鎖,只適用unix,其他系統或網路檔案可能無效

1 建立共享鎖  2 建立排他鎖  4 建立非阻塞鎖 8 排除當前鎖 

open(fd,">> inputfile");

flock(fd,2);

print fd "test string";

flock(fd,8);

close(fd);

seek()使用,可以讓檔案指標指向到指定位置

seek(filehandle,byteoffset,fileposition)

byteoffset 用於位移值,可以是正負值

fileposition 位置值,0表示到檔案開頭,1檔案中的當前位置,2檔案末尾位置

tell()返回檔案中當前位元組的位置

開啟檔案進行讀寫的操作

open(fd,"+open(fd,"+>filename") 先寫後讀

open(fd,"+>>filename") 先追加後讀

perl檔案控制代碼

perl 雜湊操作 檔案控制代碼,標準檔案控制代碼有stdin stdout stderr data ar ar out 建立名字為textfile的檔案控制代碼,表示讀檔案 open textfile,a.txt while close textfile open textfile1,b.txt ...

Perl 檔案控制代碼

檔案訪問 open data,唯讀方式開啟,將檔案指標指向檔案頭。覆蓋形式寫入 追加形式寫入,末尾追加。讀寫方式開啟,先讀後寫 新增資料可使用seek 函式定位到要新增資料的位置,然後再寫入。讀寫,先寫後讀 先覆蓋形式寫入內容,然後再讀 操作結果 檔案中以前的資料被刪除,現在檔案中只保留目前寫入的資...

Perl檔案控制代碼詳解

在檔案i o中,要從乙個檔案讀取資料,應用程式首先要呼叫作業系統函式並傳送檔名,並選乙個到該檔案的路徑來開啟檔案。該函式取回乙個順序號,即perl檔案控制代碼 filehandle 該perl檔案控制代碼對於開啟的檔案是唯一的識別依據。要從檔案中讀取一塊資料,應用程式需要呼叫函式readfile,並...