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: $!";
}
};