Perl 文件输入输出功能
Perl中的文件处理用于从外部文件中读取数据或将数据写入外部文件中。这非常有用,因为它提供了一个平台,可以永久地存储和检索文件中的数据。
File Handle
一个FileHandle将一个名字与一个外部文件联系起来,它可以一直使用到程序结束或FileHandle被关闭为止。简而言之,FileHandle就像一个连接,可以用来修改一个外部文件的内容,并给这个连接(FileHandle)起了一个名字,以便更快地访问和方便。
输入和输出函数(I/O函数)是文件处理的一个组成部分,下面是主要的I/O函数的解释和例子。
readline()
该函数从FILEHANDLE中读取一行,该行必须由给定的表达式来引用。每调用一次函数,就会读取文件的下一行。这可以重复进行,直到达到文件的末尾。为了直接使用一个文件柄,它必须作为一个类型球来传递。
语法
readline (EXPR)
例子
#!/ usr / bin / perl - w
my(data) = "";
open(F, "Hello.txt") or
die("Error encountered while reading file");
data = <F>;
print("data");
data = readline(*F);
print("$data");
close(F);
输出:
binmode()
该函数用于设置FILEHANDLE的读写格式为二进制。当一个文件被写成二进制时,它没有文件结尾的字符。由于数据是以二进制形式读写的,所以执行速度更快,效率更高,因为数据不需要经过机器的转换,可以直接理解。
语法
binmode(FILEHANDLE)
例子
#!/ usr / bin / perl
my($read_data);
open(DATA, "<Hello.txt") or die "Error in reading the file";
# To convert the file
# in binary mode
binmode(DATA);
close(DATA);
read()
该函数用于在执行过程中从文件中读取所需数量的字符,也就是说,它可以用来读取一个缓冲的信息块。它也被用来从文件中读取二进制数据。
语法
read(FILEHANDLE, SCALAR, LENGTH)
例子
#!/ usr / bin / perl
my(read_data);
open(DATA, "<Hello.txt") or die "Error in reading the file";
read(DATA,read_data, 4);
print($read_data);
close(DATA);
输出:
print()
print()是perl中最重要的I/O函数之一。它用于将数据从控制台输出到一个文件中。
语法
print FILEHANDLE LIST
例子
#!/ usr / bin / perl
my($read_data);
open(DATA, "<Hello.txt") or
die "Error in reading the file";
@dat = ("these", "are", "the", "file", "contents");
print DATA @dat;
close(DATA);
print()之前的文件 :
输出:
这将把 “这些是文件内容 “写入文件data.txt中。
seek()
这个函数用来改变文件指针的位置到所需的位置。这里的位置也可以分别改变到另一个指定的位置(WHENCE)。
语法
seek(FILEHANDLE, POSITION, WHENCE)
这里WHENCE用于指定指针移动的位置。
a) WHENCE = 0,表示指针必须从文件的开头开始。
b) WHENCE = 1,表示指针必须从文件的当前位置开始。
c) WHENCE = 2,表示指针必须从文件的末端开始。
例子
#!/ usr / bin / perl
my($read_data);
open(DATA, "<Hello.txt") or
die "Error in reading the file";
# Here, WHENCE is set to 1
seek(DATA, 10, 1);
close(DATA);
输出
The position of the pointer will be set to the specified position.
tell()
该函数用于从程序中获取指针在文件中的位置。
语法
tell(FILEHANDLE)
例子
#!/ usr / bin / perl
my(read_data);
open(DATA, "<Hello.txt") or
die "Error in reading the file";
print(tell(DATA));
char = getc(DATA);
print(tell(DATA));
close(DATA);
输出:
之所以如此,是因为最初指针是在0的位置,但在读完一个字符后,它移到了1的位置。
close()
当我们打开一个文件时,我们将一个FILEHANDLE与一个外部文件联系起来。因此,当我们结束使用该文件时,我们必须将FILEHANDLE从文件中分离出来,为此要使用close()函数。这将刷新FILEHANDLE的缓冲区。
语法
close(FILEHANDLE)
例子
#!/ usr / bin / perl
my($read_data);
open(DATA, "<data.txt") or
die "Error in reading the file";
close(DATA);