I was in the same situation about 2 years ago, when I had to build a new component for a massive(ly old) web app. Instead of keeping with current practice (of placing thousands upon thousands of html as strings inside the perl code), I made a toolkit-like library (think gtk+ but for html), which used the popular (and then only) prototypejs.
I don't know if it's better than Catalyst, but it's certainly different, and you are more than welcome to take a quick look at it
on CPAN.
I've also put it to use on my
page, though it only a 30min job, if you want to see it in action.