For what it is worth, I tend to code my CGIs as functions. What I mean by that is that the 'commands' are typically only about three or four i.e.,
My reasons for this are simple. By making a lot of subroutines, I can be coding a part of the overall CGI without constantly having to wade through lines of code I don't want to touch. It allows me to think in portions of the CGI and think in the flow of data overall and then get down to the nitty gritty. And of course, I notate copiously. My first CGI I commented on every line. I don't do that anymore but people always marvel at the fact that typically my comments are a fourth of the text in the whole script. They laugh but I always am able to return and fix stuff without first having to figure out what I was thinking when I did x
Hope that helps you some.
Fates! We will know your pleasures: That we shall die, we know; 'Tis but the time, and drawing days out, that men stand upon. - Act III,I, Julius Caesar