close

這章講FILE

 檔案我想最care 的不外乎

開檔

open(FILEHANDLE,"filename") or die "Error open file $!";

例: open(MY,"data" ) or die ....

開檔案data ,用HANDLE MY,如果沒成功,die function 啟動

FILEHANDLE 可以隨自己高興取。

開檔又分成讀,寫。

上面的開檔沒講要讀或寫,default 就是寫

要寫的話,打

open(FILEHANDLE,<"filename") ,在filename 前面打個< 就OK 了。

如果希望寫在檔案尾端,也就append 的話,就打

open(FILEHANDLE,<<"filename")

那要從檔案讀資料,就跟從stdin 很像

$d = <MY> # 用上面的HANDLE MY

那要寫檔案利用print

print FILEHANDLE "hi";

一次也可以讀或寫大量的資料利用read 和write

read(FILEHANDLE,$buf,50);# 從file 中讀50個 bytes ,放在變數$buf

write 比較奇怪一點

要先寫一個format  # 真的叫format ,有定義的東西

例如:

format FILEHANDLE =

Hi @<<<<<

$name

Hi @|||||

$name

Hi @>>>>>

$name

.

結尾用.

@<<<<< 是指它下面那行的變數,要放的地方

< left justified ,< 有幾個就空幾個出來。

> right justified

| center

然後在用

write FILEHANDLE;

其實上面在實際操作上,蠻麻煩的,因為還要先決定變數需要的空格,如果空格不夠,變數的內容會被truncate。

可以用@* 就搞定了。

針對數字的安排可以用

@####.## ,# 表示一個digit

上面的例子是書上寫的,不過我實際測試卻沒印出東西。I don't know why.

我們也可以替檔案改名

rename(old_file,new_file)

如果新的檔案本來就存在,那會被蓋掉。

刪除檔案用,unlink

unlink("A.dat","B.dat");

刪除A.dat ,及B.dat

我們也可以這樣

unlink(<*.doc>);

刪除所有的doc 檔。

 

最後是file test

-e ,判斷檔案存在

-f ,regular file

-w ,directory

-x ,executable

-r ,readable

-w ,writable

-T,text file

-B,binary file

-s ,Length of file in bytes

例如if(-e "A.dat" && -f "A.dat"){....}

但不能if(-ef "A.dat")

這章結束,收工。

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 lettice0913 的頭像
    lettice0913

    斑的家

    lettice0913 發表在 痞客邦 留言(0) 人氣()