perl重點學習筆記之目錄檔案操作

2021-06-26 05:48:38 字數 2530 閱讀 9051

一.開啟檔案:

語法為open (filevar, filename),其中filevar為檔案控制代碼,或者說是程式中用來代表某檔案的代號,filename為檔名,其路徑可為相對路徑,亦可為絕對路徑。

open(file1,"file1");

open(file1,"/u/jqpublic/file1");

開啟檔案時必須決定訪問模式,在perl中有三種訪問模式:

讀、寫和新增。後兩種模式的區別在於寫模式將原檔案覆蓋,原有內容丟失,形式為:

open(outfile,">outfile");而新增模式則在原檔案的末尾處繼續新增內容,

open的返回值用來確定開啟檔案的操作是否成功,當其成功時返回非零值,失敗時返回零,因此可以如下判斷:

if (open(myfile, "myfile"))

當檔案開啟失敗時結束程式:

unless (open (myfile, "file1"))

亦可用邏輯或操作符表示如下:

open (myfile, "file1") || die("could not open file");

當檔案操作完畢後,用close(myfile);關閉檔案。

二.寫入檔案

open(outfile, ">outfile");

print outfile ("here is an outputline.\n");

注:stdout、stderr為標準輸出和標準錯誤檔案,通常為螢幕,且不需要開啟。

三.檔案是否存在

if (-e "/path/file1")

四.perl中命令列引數的使用

象c一樣,perl也有儲存命令列引數的陣列@argv,可以用來分別處理各個命令列引數;與c不同的是,$argv[0]是第乙個引數,而不是程式名本身。

$var = $argv[0]; # 第乙個引數

$numargs = @argv; # 引數的個數

perl中,<>操作符實際上是對陣列@argv的隱含的引用,其工作原理為:

1、當perl直譯器第一次看到<>時,開啟以$argv[0]為檔名的檔案;

2、執行動作shift(@argv); 即把陣列@argv的元素向前移動乙個,其元素數量即減少了乙個。

3、<>操作符讀取在第一步開啟的檔案中的所有行。

4、讀完後,直譯器回到第一步重複。

例:@argv = ("myfile1","myfile2"); #實際上由命令列引數賦值

while ($line = <>)

將把檔案myfile1和myfile2的內容列印出來。

操作符描述

-b是否為塊裝置

-c是否為字元裝置

-d是否為目錄

-e是否存在

-f是否為普通檔案

-g是否設定了setgid位

-k是否設定了sticky位

-l是否為符號鏈結

-o是否擁有該檔案

-p是否為管道

-r是否可讀

-s是否非空

-t是否表示終端

-u是否設定了setuid位

-w是否可寫

-x是否可執行

-z是否為空檔案

-a距上次訪問多長時間

-b是否為二進位制檔案

-c距上次訪問檔案的inode多長時間

-m距上次修改多長時間

-o是否只為「真正的使用者」所擁有

-r是否只有「真正的使用者」可讀

-s是否為socket

-t是否為文字檔案

-w是否只有"真正的使用者"可寫

-x是否只有"真正的使用者"可執行

五.目錄函式

1.mkdir

mkdir(dirname,permissions);

2.chdir

chdir(dirname);

3.opendir(dirvar,dirname)

dirvar:目錄變數

dirname:目錄名

4.closedir(dirname)

關閉目錄

5.rename(oldname,newname)

重新命名6.unlink(filelist)

刪除檔案,這裡其實是刪除的檔案鏈結

7.建立鏈結

link(newlink,file)

建立乙個file的軟鏈結,刪除乙個檔案的鏈結後還可以刪除另乙個

8.chmod(permissions,filelists)

改變檔案許可權

9.stat(file)

獲取檔案狀態。引數file可為檔名也可為檔案變數。返回列表元素依次為:

目錄 Perl 學習筆記

01.perl 簡介 02.perl 指令碼開發入門 03.perl 資料型別 簡介 04.perl 資料型別 直接量 05.perl 資料型別 標量變數 06.perl 資料型別 陣列基本用法 07.perl 資料型別 陣列常用api 08.perl 資料型別 雜湊基本用法 09.perl 資料型...

perl學習筆記之

1 表示式修飾符if unless while untile foreach 2 data檔案控制代碼 data 標誌著指令碼的邏輯結束,並開啟data檔案控制代碼用於讀取。3 m運算子 如果包圍正規表示式的定界符是斜槓,m運算子是可選的 如果忙亂變了定界符,則是要求的。格式 regular exp...

perl 檔案和目錄

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