in reply to organizing large flat modules? use, require, do, ...

do, require, use, it doesn't matter — they all lead to an eval. If you don't want them, set up your own middle man to deal with the filesystem.
$ cat tt.pl sub foo { print "bar\n" } $ cat ttmain.pl package x; eval `cat tt.pl`; x::foo(); $ perl ttmain.pl bar
Backticks and cat to prove the concept. Picking something robust to suit your needs is up to you.

Makeshifts last the longest.