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

时间:2015-09-21 17:51:42

标签: perl syntax io filehandle

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

ex(这不起作用):

test.groupby(['week','type','type2']).agg('sum').unstack(1).plot(kind='bar', subplots=True)

我试图避免这样做:

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;

2 个答案:

答案 0 :(得分:3)

你无法“重新开启”它。最好的解决方案是避免关闭,如果你 以后需要它。请记住,如果需要,您可以一直使用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

答案 1 :(得分:0)

我不知道你可以重新打开一个封闭的手柄。但是,您可以将$ fh变量重新用作文件句柄,因为它已被关闭。但是,当你再次打开时,你错过了文件的名称。

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