We're using Catalyst to render lots of webforms in what will become a large application. I don't like the way all the form data is confusingly into a big hash in the Controller, before being passed to the template. It seems jumbled up and messy for the template. I'm sure there are real disadvantages that I haven't described properly... Are there?One solution is to just decide on a convention for the hash, e.g.:{  defaults => {    type => ['a', 'b', 'c']  },  input => {    type => 'a'  },  output => {    message => 2 widgets found of type a,    widgets => [ 'foo', 'bar' ]  }}Another way is to store the page/form data as attributes in a class (a ViewModel?), and pass a whole object to the template, which it could use like this:<p class=message>[% model.message %]<p>[% FOREACH widget IN model.widgets %]Which way is more flexible for large applications?Are there any other solutions or existing Catalyst-compatible frameworks?
What conventions or frameworks exist for MVVM in Perl?
data structures;perl;templates;mvvm;view