[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 編程技術 > Perl > 正文
Perl文件及目錄操作
不詳 (2001-04-16 16:06:20)

  大多數程序都不是孤立的,它們與它們的環境相互作用。很多的程序也需要通過文件操作實現數據的存貯和交換。 文件句柄(file handle)是Perl程序中為程序和外部世界提供I/O連接的名稱。建議全部使用大寫字母以示與變量等的區別。特別地,也可以將STDIN/STDOUT/STDERR也認為 是Perl的文件句柄,分別代表標準輸入/標準輸出/標準錯誤輸出。 

打開及關閉文件 

  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) { #abc.txt是否存在? 
# 存在操作 
} else { 
printf "文件不存在。\n"; 


-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 以天為單位同代碼更改時間 


刪除文件 

  Perl的unlink()操作符可實現刪除文件。如: 

unlink("abc.txt"); #刪除abc.txt 

文件重命名 

  Perl的rename()操作符可實現文件重命名。如: 

rename("abc","zmd")||die "出錯,不能更名"; 

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

目錄操作 

  Perl中處理目錄非常類似處理文件。 

  打開目錄句柄: 

opendir(ETC,"/etc")||die "出錯,不能打開目錄"; 

  關閉目錄句柄: 

closedir(ETC); 

  創建目錄: 

mkdir("zmd",0777)||die "不能創建zmd目錄"; 

  0777為內部權限格式。 

  刪除目錄: 

rmdir("zmd")||die "不能刪除zmd目錄"。  (http://www.fanqiang.com)
    進入【UNIX論壇

相關文章

======
 

★  樊強制作 歡迎分享  ★