大多數程式都不是孤立的,它們與它們的環境相互作用。很多的程式也需要通過檔案操作實現資料的存貯和交換。 檔案控制代碼(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...