Another way to do it, besides those offered, is if you are working on a CGI that is to run a whole site (as opposed to one specific function) which has many different functions is to break down the cgi into multiple scripts, and create a module that combines any common variables and functions into one place; this works much better when you have mod_perl running than without since there might be a lot of overhead calling in this CGI for one sub-script, but not when it's kept in memory. Generally the hardest part here is maintaining consistent HTML output in terms of everything outside of the specific CGI script for each sub-script, but the use of templating classes (HTML::Template, Template Toolkit 2) makes this part easy.
in reply to How to write long programms?
Dr. Michael K. Neylon - email@example.com
"You've left the lens cap of your mind on again, Pinky" - The Brain