讀檔案:
複製代碼 代碼如下:
#!perl
open filetxt,"/path/a.txt"; # filetxt為檔案控制代碼,用於和檔案a.txt建立連結。檔案控制代碼可任意取名,但不要和Perl內建的幾個檔案控制代碼重名。
print <filetxt>; # 此處print函數用於顯示檔案a.txt的內容。<>為取行操作符,<檔案控制代碼>用於讀取所連結檔案的內容。
close filetxt; # 關閉檔案控制代碼filetxt。另一種關閉的方法是將其與其它檔案建立關聯,如:open filetxt,"b.txt";如此則與原來檔案a.txt的關聯自動關閉。
或者
複製代碼 代碼如下:
#!perl
open filetxt,"<path/a.txt"; # < 用於從檔案中讀取內容,但是不能寫入任何內容到檔案中。< 與 什麼符號都不加 效果相同
while ($line=<filetxt>)
{
print $line;
)
close filetxt;
寫檔案:
在 open 一行中將 < 更改為 > 或 >> ,即可向檔案中寫入內容。如:
複製代碼 代碼如下:
#!perl
open TXT,">a.txt";
print TXT "夢裡不知身是客,\n"; # 如果檔案a.txt存在,則其內容會被取代
print TXT "一晌貪歡。\n"; # 該行內容會附加到第二行
close TXT;
[code]
或者
#!perl
open TXT,">>a.txt";
print TXT "獨自莫憑欄,無限江山,別時容易見時難。\n"; # 如果檔案a.txt已存在,該行內容會被附加到已存在檔案的後面
close TXT;
<,從檔案中讀取內容,但是不能輸出到檔案裡任何內容。如果什麼都不加的清況下讀檔案狀況會同加上“<”的效果一樣。
>,將內容輸出到檔案中,並將原有檔案中的內容清空。
>>,將內容追加到檔案中,不會清空原有檔案中的內容。
檔案的重新命名和刪除:
rename:將檔案重新命名
複製代碼 代碼如下:
#!perl
rename "a.txt","b.txt"; # 或者 rename "a.txt","a.bat";
unlink:等同於rm,刪除系統中的某些檔案
複製代碼 代碼如下:
#!perl
my @files=<*.txt>; # 或者 my @files=glob "*.txt";
unlink @files;
或者
複製代碼 代碼如下:
#!perl
unlink glob "*.txt";
或者
複製代碼 代碼如下:
#!perl
unlink <*.txt>;
多個文字檔的合并:
在Perl中,可以按照如下方式合并多個文字檔:
複製代碼 代碼如下:
#!perl
open a,">a.txt";
print a "四十年來家國,三千裡地山河。";
open b,">b.txt";
print b "鳳閣龍樓連霄漢,玉樹瓊枝作煙蘿。";
open c,">c.txt";
print c "幾曾識幹戈?"; # 分別建立文字檔 a.txt、b.txt和c.txt,並執行寫入操作
close a;
close b;
close c; # 關閉對應的檔案控制代碼(filehandle)
open a,">>a.txt";
open b, "b.txt";
open c, "c.txt"; # 重建立立檔案關聯,其中 a.txt 執行附加寫入操作,其它兩個檔案執行讀檔案操作
print a "\n".<b>."\n"; # 利用 . 進行字串的串連,此操作符必須
print a <c>."\n"; # <filehandle>表示讀取檔案控制代碼所連結的文字檔的內容
close a;
close b;
close c;
[code]
或者
[code]
#!perl
open a,">a.txt";
print a "四十年來家國,三千裡地山河。\n";
open b,">b.txt";
print b "鳳閣龍樓連霄漢,玉樹瓊枝作煙蘿。\n"; # 組建檔案並寫入內容時,即執行換行操作,讓游標留在下一行
open c,">c.txt";
print c "幾曾識幹戈?\n"; # 分別建立文字檔 a.txt、b.txt和c.txt,並執行寫入操作
close a;
close b;
close c; # 關閉對應的檔案控制代碼(filehandle)
open a,">>a.txt";
open b, "b.txt";
open c, "c.txt"; # 重建立立檔案關聯,其中 a.txt 執行附加寫入操作,其它兩個檔案執行讀檔案操作
print a <b>; # 利用 . 進行字串的串連,此操作符必須
print a <c>; # <filehandle>表示讀取檔案控制代碼所連結的文字檔的內容
close a;
close b;
close c;
如果想要在合并文字檔後刪除文字檔 b.txt 和 c.txt ,可以在後面加上如下代碼:
unlink <b.txt>;
unlink <c.txt>;
或者
unlink "b.txt";
unlink "c.txt";
或者
unlink <b.txt>,<c.txt>;
或者
unlink "b.txt","c.txt";