我使用 File::Temp 创建了一个临时文件并向其中添加了一些数据。在其他时间点,我想使用单独的文件句柄读取临时文件(seek 方法有效)。以下是代码片段。
#!usr/local/bin/perl
use File::Temp qw(tempfile);
my ($fh, $filename) = tempfile( SUFFIX => '.txt' );
my $towrite = "XXXX\nYYYY\nZZZZ\n";
open ANOTHERFH, "<", $fh or die "Cannot open $FH\n";
while (<ANOTHERFH>) {
print "ANOTHERFH: $_";
}
close ANOTHERFH;
但是,我收到一条错误消息“无法打开 GLOB...” 有什么建议
最佳答案
要克隆(“dup”)系统文件句柄,语法为
open(my $fh, '<&', $fh_to_dup) # dups into a new fd
或
open($existing_fh, '<&=', $fh_to_dup) # dupds into fd fileno($existing_fh)
所以你想要
open(my $ANOTHER_FH, "<&", $fh) # Avoid needless use of globals!
or die("Can't dup temp file: $!\n");
关于perl - 使用单独的文件句柄读取使用 File::Temp 创建的临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45355761/