have you profiled your perl program and db resources during a typical run? The perl script is possibly just waiting for a large update/reindex on the db to finish...just guessing...and suspending or running it at lower priority may have zero effect. profile it.
the hardest line to type correctly is: stty erase ^H