How much memory is being shared between your child processes? I.e. what does 'top' report in the 'SHARED' column?
If they are not sharing a lot of memory, do you have use LWP; and use WWW::Mechanize; 'outside' your while loop (like at the beginning of your program)? This will enable them to share those modules.