brian d foy's comments on "think horses not zebras" when debugging reminded me of one of my favorite books on programming (suggested to me by petdance)...The Pragmatic Programmer. Tip 26 "select isn't broken" on p. 96 advises:
We worked on a project where a senior engineer was convinced that the select system was broken on Solaris. No amount of persuasion or logic could change his mind (the fact that every other networking application on the box worked fine was irrelevant). He spent weeks writing work-arounds, which, for some odd reason, didn't seem to fix the problem. When finally forced to sit down and read the documentation on select, he discovered the problem and corrected it in a matter of minutes. We now use the pharse "select is broken" as a gentle reminder whenever one of us starts blaming the system for a fault that is likely to be our own. Remember, if you see hoof prints, think horses--not zebras. The OS is probably not broken. And the database is fine.
Perl is probably OK too