Catalyst, Template Toolkit, and DBIx::Class (if you need a DB connection) is the "start of the art". Moose for all object stuff. Selenium for testing the JS. Dojo for your JS toolkit. :-)
My criteria for good software:
Does it work?
Can someone else come in, make a change, and be reasonably certain no bugs were introduced?