All the data ends up in processeddata, no matter how much is read by a given call to sysread.
Oops, my bad. Actually, hm, I'm not sure what happens without the offset adjustments that I have in my code...
It doesn't look like you're handling ... other exceptional conditionsHe does this too. Relevant code:
if( ! defined $length || $length == 0 ) { $err .= "Error from child: $!\n" unless defined $length; $select->remove($fh); }
That treats things like EINTR as "fatal" errors (stop listening on that $fh), which is probably not what he wants.
You removed select, which is cruicial here.
I was just commenting on the vagaries of sysread().
In reply to Re^3: I got IPC::Open3 to work!
by siracusa
in thread I got IPC::Open3 to work!
by harleypig
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |