Some of you may have heard of my little tool called PPerl - it's on CPAN, and it basically turns ordinary perl scripts into persistent daemons, alleviating the large load/parse time of the perl interpreter for large-ish scripts. We're going to use it here at work for our anti-spam engine, and hopefully if it works well, for our anti-virus engine (these two components make up a huge part of the time spent in our mail engine, mostly due to compiling perl code).
Anyway, PPerl wasn't working right for me, because my spam code wraps the code in an eval{} block, and PPerl overloaded the meaning of exit() with a custom die() string which PPerl would catch and "do the right thing" with (does that make sense to readers?). The upshot was that the spam code was trapping PPerl's exit code before PPerl could get to see it.
Richard Clamp kindly wrote a fix for this last night (using goto instead of die). In fact, he's been steadily providing patches and fixes for various parts of PPerl for the last couple of months now. Major karma is due his way.