in reply to organizing large flat modules? use, require, do, ...
Here's a somewhat different idea: use AutoLoader. It comes with Perl. Normally, you write your code with all the subs after an __END__ tag, and then run autosplit to make them into separate files, but you could just code them as separate files in the first place. Then AutoLoader will handle loading them when you try to call a sub.