Perl檔案及目錄操作

2021-09-30 06:11:36 字數 2067 閱讀 8245

大多數程式都不是孤立的,它們與它們的環境相互作用。很多的程式也需要通過檔案操作實現資料的存貯和交換。 檔案控制代碼(file handle)是perl程式中為程式和外部世界提供i/o連線的名稱。建議全部使用大寫字母以示與變數等的區別。特別地,也可以將tdin/stdout/stderr也認為是perl的檔案控制代碼,分別代表標準輸入/標準輸出/標準錯誤輸出。  

1. 開啟及關閉檔案

perl的檔案操作與c語言極為相似。如:  

open(filename,"abc.txt");  #  該呼叫為讀檔案開啟,若為寫檔案而開啟,需在檔名前加上大於號:  

open(filename,">abc.txt");  #  若要追加至檔案尾,可在檔名前加上兩個大於號:  

open(filename,">>abc.txt");  

以上三種open()格式在成功時返回真,失敗時返回假。但程式中通常沒有提示,出錯時往往會被人們忽略。 通常當需要給出出錯提示時,可加入die()函式。例:  

open(outfile,">/tmp/outfile")|| die "出錯,不能建立/tmp/outfile/n";  

當只有open失敗時,才會執行die給出出錯提示。  

對檔案控制代碼的操作完成後,可以用close操作符關閉檔案。如:  close(outfile);  

-x 檔案測試

perl的檔案操作也可以先測試檔案是否存在,是否可讀寫等。如:  

$x="abc.txt";  

if(-e $x)  else   

-e操作符測試檔案或目錄是否存在。

以下為檔案測試清單: 

檔案測試 測試操作符提供的資訊  

-r 檔案或目錄可讀  

-w 檔案或目錄可寫  

-x 檔案或目錄執行  

-o 檔案或目錄歸使用者所有  

-r 檔案或目錄對真正使用者可讀  

-w 檔案或目錄對真正使用者可寫  

-x 檔案或目錄對真正使用者執行  

-o 檔案或目錄歸真正使用者所有  

-e 檔案或目錄存在  

-z 檔案存在且大小為0  

-s 檔案或目錄存在且不為0(返回位元組數)  

-f 檔案為普通檔案  

-d 檔案為目錄  

-l 檔案為符號鏈結  

-p 檔案為命名管道(fifo)  

-s 檔案為乙個套口(socket)  

-b 檔案為塊特殊檔案  

-c 檔案為字元特殊檔案  

-t 開啟tty控制台的檔案控制代碼  

-u 檔案或目錄是設定使用者id號  

-g 檔案或目錄是設定使用者組id號  

-k 檔案或目錄的sticky位置位  

-t 檔案是文字檔案  

-b 檔案是二進位制檔案  

-m 以天為單位的存在時間  

-a 以天為單位訪問時間  

-c 以天為單位同**更改時間 

2. 刪除檔案

perl的unlink()操作符可實現刪除檔案。如:   unlink("abc.txt"); #刪除abc.txt  

3. 檔案重新命名

perl的rename()操作符可實現檔案重新命名。如:   rename("abc","zmd")||die "出錯,不能更名";  

此時將abc更名為zmd,成功返回真,否則給出出錯提示。  

4. 目錄操作

perl中處理目錄非常類似於處理檔案。  

開啟目錄控制代碼:  opendir(etc,"/etc")||die "出錯,不能開啟目錄";  

關閉目錄控制代碼:  closedir(etc);  

建立目錄:  mkdir("zmd",0777)||die "不能建立zmd目錄";     0777為內部許可權格式。  

刪除目錄:  rmdir("zmd")||die "不能刪除zmd目錄"。

Perl中檔案與目錄的操作

1,刪除檔案 unlink 如成功返回刪除的檔案數 true 否則返回0 false 如 unlink test.txt unlink test1.txt test2.txt unlink rm test txt under shell2,重新命名檔案 rename 如成功返回真 true 否則返回...

Perl的目錄操作

perl中要對目錄操作,需要先獲得目錄控制代碼 opendir handle,path 獲得目錄控制代碼後,可使用readdir函式讀取目錄內容,如 a readdir handle a的每個元素代表目錄的每一項 關閉目錄控制代碼 closedir handle 建立目錄 mkdir dirname...

perl 檔案和目錄

檔案和目錄 xfilehandle expr dirhandle 檔案測試 r file 檔案對當前有效使用者或組可讀 w file 檔案對當前有效使用者或組可寫 x file 檔案對當前有效使用者或組可執行 o file 檔案對當前有效使用者或組擁有 r file 檔案對當前實際使用者或組可讀 w...