in reply to Ways to Seperate Code from Content

HTML::Template is a pretty easy method to template your application. You embed HTML'esque tags in your code <TMPL_VAL NAME=CONTENT>, assign content to them $tmpl->param(CONTENT=>$mycontent; then send the output to the browser print $tmpl->output;

I dont completely abstract the html gen and the code completely as i find it easier (and quicker) to have a "sensible" mix of the two, which of course is subjective, but works well for me.

If you're going the whole maintaince angle on your designs, check out CGI::Application which is a good method to build structured web sites that are easy to maintain and add new functionality.