如何在 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 $!;
关闭文件句柄后是否可以在不创建新文件句柄的情况下重新打开它?
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 $!;