If you don't use templates then half way through your project you'll wish you had. I've seen quite a few horror stories in the shops I've worked at and have seen them all dissapear one I managed to advocate HTML::Template to my manager.
As mentioned in a node above, separation of display, logic (and data) will make your coding life much easier. You imply that using templates introduces some form of spaghetti into your code, frankly (IMHO) nothing could be further from the truth. Just try HTML::Template or the Template Toolkit in a project and you'll see for yourself.