in reply to How to organize a CGI project?

Some wisdom(hopefully) from my experience.

Keeping functions that are common to more than one file in a seprate module is a good idea.

What I like to do is to keep all business logic in one file and all display code in another. This gives me a 3 tier model: data, logic, and presentation. While I find this helpful you may not. Use whatever works best in your situation.

You didn't mention it in your post but I would recommend using a templating system, such as HTML::Template. There are several other templating systems available so take a look at a few of them before deciding which one will work best for this project.

Hopefully this will help out a little.