给你一个IO::File
对象或一个 typeglob(\*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: $!";
}
};