The other changes you suggested do prevent the error from happening.
No, it means an error never occurred in the first place.
What's setting $!?
Some earlier call or some internal call. You could use command line utility strace if you think it's relevant.
I do see how the "or die" on the join could be a logic error
Two problems:
Your use of $! in the error message when it's not warranted.
It does a bad job of detecting an error when one occurs. An error could occur and you wouldn't even know it. (False negative)
If you *also* want to make sure you received more than zero characters, that's fine. Add that check.
In reply to Re^5: open3 and illegal seeks
by ikegami
in thread open3 and illegal seeks
by brainsick
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |