I think
hakkr's list is great, but not perfect. I would agree with most of his points, one notable execption (in my opinion) is
2. use HTML::Template not HERE documentsHERE documents are very helpful, and one doesn't have to learn how to use something new (i.e. HTML::Template). I've used it before, and it's harder to use it than to write multiple
print statements (my opinion). Otherwise, this is a great idea.