It's a combination of several things. Here's the biggies.
- Using mod_perl
- Implementing your program(s) as an apache handler or Apache::Registry
- Pre-loading all modules
- Caching all needed data and expensive queries (this really helps)
- Optimal SQL queries if you're using some type of database
- General coding efficiency (writing tight code, using references,
optimising accessor functions, etc.)
- If you're returning huge pages, mod_gzip really helps cut down on
transfer time
- Tuning apache's MinSpareServers, MaxSpareServers, etc
- Use tt2 instead of HTML::Template. It's great, and the new XS-based Template::Stash is spiffy
Hope this helps.