您有一个
目前,我正在尝试
IO::File
对象或类型 glob(\*STDOUT
或 Symbol::symbol_to_ref("main::FH")
);您该如何确定它是读取还是写入句柄?接口不能扩展以传递此信息(我正在重写 close
添加调用 flush
和 sync
在实际关闭之前)。目前,我正在尝试
flush
和 sync
文件句柄,并忽略错误 "Invalid argument"
(当我尝试在读取文件句柄上执行 flush
或 sync
时会出现此错误)。eval { $fh->flush; 1 } or do {
#this seems to exclude flushes on read handles
unless ($! =~ /Invalid argument/) {
croak "could not flush $fh: $!";
}
};
eval { $fh->sync; 1 } or do {
#this seems to exclude syncs on read handles
unless ($! =~ /Invalid argument/) {
croak "could not sync $fh: $!";
}
};