Ouch! I started with this:
$ perl -MDevel::Size=total_size -le 'use POSIX; print total_size (\%POSIX::)'
398550
$ perl -MDevel::Size=total_size -le 'use POSIX(); print total_size(\%POSIX::)'
70603
and then found that things got "better". (Although I think that I will be corrected somewhat on the closure comment)
One thought about what this means is that anything running with ithreads is likely to spawn threads faster if it avoids as much importing as it can. So go check your use statements in your mod_perl programs.
Oh, it's better than that.... (Score:1)
perl -MDevel::Size=total_size -le 'use POSIX; print total_size(\%::)'
728436
perl -MDevel::Size=total_size -le 'use POSIX(); print total_size(\%::)'
213560
You're not saving 300K, you're saving 500K...
Forking (Score:2)
So if you run mod_perl the old fashioned (and IMO still: better) way, consider loading all of POSIX upfront. This will improve runtime of the first script (per Apache child!) that needs something out of POSIX, and memory use, as you now load everything only once instead of parts duplicately.
As always: the way you use code is important for the way you should write it. A good rule of thumb is to always e