note
JavaFan
You're dying whenever $! is a non-false value. But $! having a non-false value is <em>not</em> an indication anything is wrong. Check the system call, only if that is false, $! will have a useful value. In all other cases, you may not rely on $! having a sensible value.
<p>
In this, my bet is that Solaris sets <c>errno</c> to 13 during one of the system calls that are being made. And an OS is free to do so, the 13 only needs to signal something if the call fails (which it won't, because if the <c>read</c> fails, you aren't testing $!).
948778
948778