If I read from a pipe (pipe open), then it fails on close if pipe is broken -- this is why I check exit status of close.
Yes, checking the return value of close is very important on piped opens - as per its documentation:
close $fh or die $! ? "Error closing pipe: $!"
: "Piped open exit status: $?";
when data read from local file is broken in the middle of the process of reading
It depends a bit on what "broken" means - if you are always reading from a pipe, then yes, you should be able to detect this condition. However, if you're reading from a regular file, then I don't think the reading program will be able to detect a failure in the writer, if that is what you mean. If the file format allows for any kind of sanity checks (like headers with record lengths or other well-formedness checks), or even checksums, then I would use those.
|