When using Catalyst, I've used HTML::FormFu.
Later on I've moved to HTML::FormHandler, and contributed some code to that, but eventually decided it was way too big and complex for what I wanted. I had to write my own wrapper for it to make it work more simply, which is sad.
My most recent forms are hand-made, and I've obviously considered writing my own form handling module, but haven't yet.
I just saw the following presentation and found it interesting, you might as well:
http://jameslaver.com/presentations/spark/Thinking about trying it out for future projects.