已閱讀5頁,還剩21頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
Perl語言程序設(shè)計(jì),文件讀寫,1,一、打開、關(guān)閉文件,1.語法為open(filevar,filename),其中filevar為文件句柄,或者說是程序中用來代表某文件的代號,filename為文件名,其路徑可為相對路徑,亦可為絕對路徑。open(FILE1,file1);open(FILE1,/u/jqpublic/file1);open(FILE1,“ujqpublicfile1);,2,2.文件訪問模式打開文件時必須決定訪問模式,在PERL中有三種訪問模式:讀、寫和添加。寫模式:將原文件覆蓋,原有內(nèi)容丟失,形式為:open(outfile,“outfile”);添加模式:則在原文件的末尾處繼續(xù)添加內(nèi)容,形式為:open(appendfile,“appendfile”)。注意:不能對文件同時進(jìn)行讀和寫/添加操作。,3,3.open的返回值用來確定打開文件的操作是否成功,當(dāng)其成功時返回非零值,失敗時返回零,因此可以如下判斷:if(open(MYFILE,myfile)#hereswhattodoifthefileopenedsuccessfully當(dāng)文件打開失敗時結(jié)束程序:unless(open(MYFILE,file1)die(cannotopeninputfilefile1n);,4,亦可用邏輯或操作符表示如下:open(MYFILE,file1)|die(Couldnotopenfile);當(dāng)文件操作完畢后,用close(MYFILE);關(guān)閉文件。,5,二、讀文件,讀取文件一行數(shù)據(jù)語句$line=;從文件中讀取一行數(shù)據(jù)存儲到簡單變量$line中并把文件指針向后移動一行。為標(biāo)準(zhǔn)輸入文件,通常為鍵盤輸入,不需要打開。,6,讀取文件全部內(nèi)容語句array=;把文件的全部內(nèi)容讀入數(shù)組array,文件的每一行(含回車符)為array的一個元素,7,三、寫文件,形式為:open(OUTFILE,outfile);printOUTFILE(Hereisanoutputline.n);注:STDOUT、STDERR為標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤文件,通常為屏幕,且不需要打開。,8,四、判斷文件狀態(tài),1、文件測試操作符(-x)語法為:-opexpr,如:if(-e/path/file1)printSTDERR(Filefile1exists.n);,9,Perl的文件操作也可以先測試文件是否存在,是否可讀寫等。如:$x=abc.txt;if(-e$x)#abc.txt是否存在?#存在操作elseprintf文件不存在。n;-e操作符測試文件或目錄是否存在。以下為文件測試清單:,10,文件測試操作符,11,12,13,例:unless(open(INFILE,infile)die(Inputfileinfilecannotbeopened.n);if(-eoutfile)die(Outputfileoutfilealreadyexists.n);unless(open(OUTFILE,outfile)die(Outputfileoutfilecannotbeopened.n);等價于open(INFILE,infile),14,五、刪除文件,Perl的unlink()操作符可實(shí)現(xiàn)刪除文件。如:unlink(abc.txt);#刪除abc.txt,15,六文件重命名,Perl的rename()操作符可實(shí)現(xiàn)文件重命名。如:rename(abc,zmd)|die出錯,不能更名;此時將abc更名為zmd,成功返回真,否則給出出錯提示。,16,七目錄操作,Perl中處理目錄非常類似于處理文件。打開目錄句柄:opendir(ETC,/etc)|die出錯,不能打開目錄;關(guān)閉目錄句柄:closedir(ETC);,17,創(chuàng)建目錄:mkdir(“zmd”,0777)|die“不能創(chuàng)建zmd目錄”;0777為內(nèi)部權(quán)限格式。刪除目錄:rmdir(zmd)|die不能刪除zmd目錄。,18,八、命令行參數(shù),象C一樣,PERL也有存儲命令行參數(shù)的數(shù)組ARGV,可以用來分別處理各個命令行參數(shù);與C不同的是,$ARGV0是第一個參數(shù),而不是程序名本身。$var=$ARGV0;#第一個參數(shù)$numargs=ARGV;#參數(shù)的個數(shù),19,PERL中,操作符實(shí)際上是對數(shù)組ARGV的隱含的引用。其工作原理為:1、當(dāng)PERL解釋器第一次看到時,打開以$ARGV0為文件名的文件;2、執(zhí)行動作shift(ARGV);即把數(shù)組ARGV的元素向前移動一個,其元素?cái)?shù)量即減少了一個。,20,3、操作符讀取在第一步打開的文件中的所有行。4、讀完后,解釋器回到第一步重復(fù)。例:ARGV=(myfile1,myfile2);#實(shí)際上由命令行參數(shù)賦值while($line=)print($line);將把文件myfile1和myfile2的內(nèi)容打印出來。,21,九、打開管道,用程序的形式也可以象命令行一樣打開和使用管道(ex:lstempfile)。如語句open(MYPIPE,“|cathello”);打開一個管道,發(fā)送到MYPIPE的輸出成為命令“cathello”的輸入。,22,由于cat命令將顯示輸入文件的內(nèi)容,故該語句等價于open(MYPIPE,“hello”);用管道發(fā)送郵件如下:open(MESSAGE,|maildave);printMESSAGE(Hi,Dave!YourPerlprogramsentthis!n);close(MESSAGE);,23,小結(jié)Perl讀寫文本文件,1、文件名前面沒有表示讀文件open(FILE,C:test.txt;while(chomp;print$_n;close(FILE);,24,2、文件名前面有一個表示寫文件,并覆蓋原有內(nèi)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年滬科版九年級數(shù)學(xué)上冊階段測試試卷
- 2025年人教版九年級科學(xué)上冊月考試卷含答案
- 小學(xué)食堂工作人員培訓(xùn)
- 2025年新世紀(jì)版八年級地理上冊階段測試試卷含答案
- 嵌入性視角下城市社區(qū)醫(yī)養(yǎng)結(jié)合養(yǎng)老服務(wù)模式構(gòu)建
- 2025年度彩鋼棚防火涂料噴涂與檢測合同3篇
- 2024食用油線上線下銷售渠道合作協(xié)議3篇
- 基因簇的生物信息學(xué)分析設(shè)計(jì)
- 小兒靜脈治療安全
- 全新外包咨詢服務(wù)合同下載
- 社區(qū)依法執(zhí)業(yè)培訓(xùn)課件
- 可口可樂火炬營銷案例分析
- 赤峰市松山區(qū)王府鎮(zhèn)水泉溝礦泉水2024年度礦山地質(zhì)環(huán)境治理計(jì)劃書
- 某年機(jī)關(guān)老干部工作總結(jié)
- 股骨干骨折(骨科)
- 租房定金協(xié)議電子版本
- 胸心外科細(xì)化標(biāo)準(zhǔn)
- 飛機(jī)拆解管理手冊
- 農(nóng)村文化建設(shè)培訓(xùn)
- 教科版六年級下冊科學(xué)第一單元《小小工程師》教材分析及全部教案(定稿;共7課時)
- 身心靈療愈行業(yè)報(bào)告
評論
0/150
提交評論