Perl 檔案的開啟和關閉
Perl中有以下兩個具有多種形式的函式,可用於開啟任何新的或現有的檔案。
open FILEHANDLE, EXPR open FILEHANDLE sysopen FILEHANDLE, FILENAME, MODE, PERMS sysopen FILEHANDLE, FILENAME, MODE
這裡FILEHANDLE是**open**函式返回的檔案控制代碼,EXPR是包含檔名和開啟檔案模式的表示式。
Open 函式
以下是以只讀模式開啟**file.txt**的語法。小於號<表示檔案必須以只讀模式開啟。
open(DATA, "<file.txt");
這裡DATA是檔案控制代碼,將用於讀取檔案。以下示例將開啟一個檔案並將它的內容列印到螢幕上。
#!/usr/bin/perl
open(DATA, "<file.txt") or die "Couldn't open file file.txt, $!";
while(<DATA>) {
print "$_";
}以下是以寫入模式開啟file.txt的語法。大於號>表示檔案必須以寫入模式開啟。
open(DATA, ">file.txt") or die "Couldn't open file file.txt, $!";
此示例在開啟檔案進行寫入之前實際上會截斷(清空)檔案,這可能並非所需效果。如果要開啟檔案進行讀寫,可以在>或<字元前加一個加號。
例如,要開啟檔案進行更新而不截斷它:
open(DATA, "+<file.txt"); or die "Couldn't open file file.txt, $!";
要先截斷檔案:
open DATA, "+>file.txt" or die "Couldn't open file file.txt, $!";
可以以追加模式開啟檔案。在此模式下,寫入點將設定為檔案的末尾。
open(DATA,">>file.txt") || die "Couldn't open file file.txt, $!";
雙>>以追加模式開啟檔案,將檔案指標放在末尾,以便可以立即開始追加資訊。但是,除非在它前面也放置一個加號,否則無法從中讀取:
open(DATA,"+>>file.txt") || die "Couldn't open file file.txt, $!";
下表列出了不同模式的可能值
| 序號 | 實體及定義 |
|---|---|
| 1 | < 或 r 只讀訪問 |
| 2 | > 或 w 建立、寫入和截斷 |
| 3 | >> 或 a 寫入、追加和建立 |
| 4 | +< 或 r+ 讀寫 |
| 5 | +> 或 w+ 只讀訪問 |
| 6 | +>> 或 a+ 只讀訪問 |
Sysopen 函式
Perl 中的**sysopen**函式類似於主要的open函式,不同之處在於它使用系統**open()**函式,並使用提供的引數作為系統函式的引數:
例如,要開啟檔案進行更新,模擬open中的**+<filename**格式:
sysopen(DATA, "file.txt", O_RDWR);
或者在更新前截斷檔案:
sysopen(DATA, "file.txt", O_RDWR|O_TRUNC );
可以使用O_CREAT建立新檔案,使用O_WRONLY以只寫模式開啟檔案,使用O_RDONLY以只讀模式開啟檔案。
如果必須建立**PERMS**引數指定指定檔案的許可權。預設情況下,它取**0x666**。
下表列出了MODE的可能值。
| 序號 | 實體及定義 |
|---|---|
| 1 | O_RDWR 讀寫 |
| 2 | O_RDONLY 只讀 |
| 3 | O_WRONLY 只寫 |
| 4 | O_CREAT 建立檔案 |
| 5 | O_APPEND 追加到檔案 |
| 6 | O_TRUNC 截斷檔案 |
| 7 | O_EXCL 如果檔案已存在則停止 |
| 8 | O_NONBLOCK 非阻塞可用性 |
Close 函式
要關閉檔案控制代碼,從而取消檔案控制代碼與相應檔案的關聯,可以使用**close**函式。這將重新整理檔案控制代碼的緩衝區並關閉系統的檔案描述符。
close FILEHANDLE close
如果沒有指定FILEHANDLE,則它將關閉當前選定的檔案控制代碼。只有在成功重新整理緩衝區並關閉檔案時,它才返回true。
close(DATA) || die "Couldn't close file properly";
資料結構
網路
關係型資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP