Perl文件及目录操作
本文轉(zhuǎn)自:http://www.blogjava.net/weidagang2046/articles/61995.html
大多數(shù)程序都不是孤立的,它們與它們的環(huán)境相互作用。很 多的程序也需要通過(guò)文件操作實(shí)現(xiàn)數(shù)據(jù)的存貯和交換。?文件句柄(file?handle)是Perl程序中為程序和外部世界提供I/O連接的名稱(chēng)。建議全 部使用大寫(xiě)字母以示與變量等的區(qū)別。特別地,也可以將STDIN/STDOUT/STDERR也認(rèn)為?是Perl的文件句柄,分別代表標(biāo)準(zhǔn)輸入/標(biāo)準(zhǔn)輸出 /標(biāo)準(zhǔn)錯(cuò)誤輸出。?
打開(kāi)及關(guān)閉文件?
Perl的文件操作與C語(yǔ)言極為相似。如:?
open(FILENAME,"abc.txt");?
該調(diào)用為讀文件打開(kāi),若為寫(xiě)文件而打開(kāi),需在文件名前加上大于號(hào):?
open(FILENAME,">abc.txt");?
若要追加至文件尾,可在文件名前加上兩個(gè)大于號(hào):?
open(FILENAME,">>abc.txt");?
以上三種open()格式在成功時(shí)返回真,失敗時(shí)返回假。但程序中通常沒(méi)有提示,出錯(cuò)時(shí)往往會(huì)被人們忽略。?通常當(dāng)需要給出出錯(cuò)提示時(shí),可加入die()函數(shù)。例:?
open(OUTFILE,">/tmp/outfile")||?
die?"出錯(cuò),不能建立/tmp/outfile/n";?
當(dāng)只有open失敗時(shí),才會(huì)執(zhí)行die給出出錯(cuò)提示。?
對(duì)文件句柄的操作完成后,可以用close操作符關(guān)閉文件。如:?
close(OUTFILE);?
-x?文件測(cè)試?
Perl的文件操作也可以先測(cè)試文件是否存在,是否可讀寫(xiě)等。如:?
$x="abc.txt";?
if(-e?$x)?{?#abc.txt是否存在??
#?存在操作?
}?else?{?
printf?"文件不存在。/n";?
}?
-e操作符測(cè)試文件或目錄是否存在。?
以下為文件測(cè)試清單:?
文件測(cè)試?測(cè)試操作符提供的信息?
-r?文件或目錄可讀?
-w?文件或目錄可寫(xiě)?
-x?文件或目錄執(zhí)行?
-o?文件或目錄歸用戶(hù)所有?
-R?文件或目錄對(duì)真正用戶(hù)可讀?
-W?文件或目錄對(duì)真正用戶(hù)可寫(xiě)?
-X?文件或目錄對(duì)真正用戶(hù)執(zhí)行?
-O?文件或目錄歸真正用戶(hù)所有?
-e?文件或目錄存在?
-z?文件存在且大小為0?
-s?文件或目錄存在且不為0(返回字節(jié)數(shù))?
-f?文件為普通文件?
-d?文件為目錄?
-l?文件為符號(hào)鏈接?
-p?文件為命名管道(FIFO)?
-S?文件為一個(gè)套口(socket)?
-b?文件為塊特殊文件?
-c?文件為字符特殊文件?
-t?打開(kāi)tty控制臺(tái)的文件句柄?
-u?文件或目錄是設(shè)置用戶(hù)ID號(hào)?
-g?文件或目錄是設(shè)置用戶(hù)組ID號(hào)?
-k?文件或目錄的sticky位置位?
-T?文件是文本文件?
-B?文件是二進(jìn)制文件?
-M?以天為單位的存在時(shí)間?
-A?以天為單位訪(fǎng)問(wèn)時(shí)間?
-C?以天為單位同代碼更改時(shí)間?
刪除文件?
Perl的unlink()操作符可實(shí)現(xiàn)刪除文件。如:?
unlink("abc.txt");?#刪除abc.txt?
文件重命名?
Perl的rename()操作符可實(shí)現(xiàn)文件重命名。如:?
rename("abc","zmd")||die?"出錯(cuò),不能更名";?
此時(shí)將abc更名為zmd,成功返回真,否則給出出錯(cuò)提示。?
目錄操作?
Perl中處理目錄非常類(lèi)似于處理文件。?
打開(kāi)目錄句柄:?
opendir(ETC,"/etc")||die?"出錯(cuò),不能打開(kāi)目錄";?
關(guān)閉目錄句柄:?
closedir(ETC);?
創(chuàng)建目錄:?
mkdir("zmd",0777)||die?"不能創(chuàng)建zmd目錄";?
0777為內(nèi)部權(quán)限格式。?
刪除目錄:?
rmdir("zmd")||die?"不能刪除zmd目錄"。
總結(jié)
以上是生活随笔為你收集整理的Perl文件及目录操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 互联网12个创业派系500强,你认识多少
- 下一篇: LOAD DATA INFILE句法