Perl open 函数

描述

该函数使用指定的文件句柄打开一个文件。 文件句柄可能是一个表达式,结果值被用作句柄。 如果未指定文件名,则使用与使用的文件句柄同名的变量(这应该是一个标量变量,带有一个引用文件名的字符串值)。 特殊文件名"-"指的是 STDIN,'>-' 指的是 STDOUT。


语法

以下是此函数的简单语法 −

open FILEHANDLE, EXPR, LIST

open FILEHANDLE, EXPR

open FILEHANDLE

返回值

此函数在失败时返回 0,在成功时返回 1。


示例

以下是以只读模式打开 file.txt 的语法。 这里小于 < 符号表示文件必须以只读模式打开。

open(DATA, "<file.txt");

这里 DATA 是用于读取文件的文件句柄。 这是打开文件并将其内容打印到屏幕上的示例。

#!/usr/bin/perl

open(DATA, "<file.txt");

while(<DATA>) {
   print "$_";
}

以下是以写入模式打开 file.txt 的语法。 这里 > 符号表示文件必须以写模式打开 −

open(DATA, ">file.txt");

此示例实际上在打开文件进行写入之前截断(清空)文件,这可能不是预期的效果。 如果要打开文件进行读写,可以在 > 或 < 字符前加一个加号。

例如,打开一个文件进行更新而不截断它 −

open(DATA, "+<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, $!";

下表给出了不同模式的可能值。

Entities    Definition
< or r		Read Only Access
> or w		Creates, Writes, and Truncates
>> or a         Writes, Appends, and Creates
+< or r+	     Reads and Writes
+> or w+	     Reads, Writes, Creates, and Truncates
+>> or a+    Reads, Writes, Appends, and Creates

❮ Perl 函数参考