Perl |文件输入/输出功能
Perl 中的文件处理用于从外部文件读取数据或将数据写入外部文件。这非常有用,因为它提供了一个从文件中永久存储和检索数据的平台。
文件句柄 文件句柄将一个名称与一个外部文件相关联,该文件可以一直使用到程序结束或文件句柄关闭。简而言之,文件句柄就像一个连接,可以用来修改外部文件的内容,并为这个连接命名(文件句柄),以便更快地访问和使用。
输入和输出功能(输入/输出功能)是文件处理不可分割的一部分,下面是用例子解释的主要输入/输出功能。
读行()
该函数从 FILEHANDLE 中读取一行,该行必须由给定的表达式引用。对于每次函数调用,都会读取文件的下一行。这可以重复进行,直到文件结束。为了直接使用 filehandle,它必须作为 typeglob 传递。
语法:
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(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()是 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()
之前:
T4】
输出:
这将把“这些是文件内容”写入文件data.txt
seek()
此功能用于将文件指针的位置更改为所需的位置。这里的位置也可以分别改变到另一个指定的位置(从那里)。
语法:
seek(FILEHANDLE, POSITION, WHENCE)
这里,WHORD 用于指定指针移动到的相应位置。 a)WHORD = 0,表示指针必须从文件的开头开始。 b)WHOW = 1,表示指针必须从文件的当前位置开始。 c)whorf = 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。
关闭()
当我们打开一个文件时,我们将一个 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);