如何在 Perl 中重新打开已关闭的文件句柄?

How can I reopen a closed file handle in Perl?

关闭文件句柄后是否可以在不创建新文件句柄的情况下重新打开它?

ex(这不起作用):

use strict;
use warnings;

# Open and write to a file
open my $fh, '>', 'file.txt' or die $!;
print $fh 'Hi!';
close $fh;

# Reopen the file and read its contents
open $fh, '<' or die $!;
my @contents = <$fh>;
close $fh;

print @contents;

我正在努力避免这样做:

open my $fh2, '<', 'file.txt' or die $!;

你不能"reopen"它。最好的解决办法是避免关闭,如果你 以后需要它。请记住,如果需要,您可以随时使用 seek 倒回文件的某些部分。

# open for read/write
open my $fh, '+<', 'file.txt' or die $!;

# do something to file, like writing

# go to the beginning
seek FILEHANDLE, 0, 0;

# do something else, like reading

我不知道您可以重新打开已关闭的句柄。但是,您可以重新使用 $fh 变量作为文件句柄,因为它已被关闭。但是,当您再次打开时,您丢失了文件名。

open $fh, '<', 'file.txt' or die $!;