in reply to How to trace a dying process
The while loop is a gotcha in Perl sometimes. Consider the loop
The while loop can be fix with the following:
Now that comes to the second part of the problem, EOF's (^Z or ^D) encountered in the input stream unexpectedly. Perhaps you could switch from the while(){} loop to a do {} while () loop, and print out the input to a log file. Then you have a better chance of catching the error.
It will work most of the time, terminating when '<>' fails with undef (reaches the end of file). However when the while loop encounters a '0' by itself, it would fail as well (while loop fails on undef or '0').while (<>) { ... }
The while loop can be fix with the following:
This while loop will only quit when the input stream really ends.while (defined <>) { ... }
Now that comes to the second part of the problem, EOF's (^Z or ^D) encountered in the input stream unexpectedly. Perhaps you could switch from the while(){} loop to a do {} while () loop, and print out the input to a log file. Then you have a better chance of catching the error.
In Section
Seekers of Perl Wisdom