First off, I am NO monk. But I did come into this problem a few years ago when I was building a fusker. What I ultimately did was use Parallel::Simple to branch into 4 threads with each thread using WWW:Mechanize to do the work. Since I'm on Win32 (no real pipes so to speak), I hacked up some thread control using temp files. The temp files can pass URLs to the WWW::Mechanize objects, and they can even be used to pass signals. You get into some elegant issues with concurrency and file-locks, but it CAN work.
Anyway, that was my two cents. Good luck on your project!