package MyEditForm; ... sub build_form { ... $self->add_field(start_date => MyDateField::MDY->new(size => ...)); } #### package MyWebApp; ... sub init { ... $self->add_forms ( edit_form => { class => 'MyEditForm', ... }, ... )l $self->add_pages ( edit_page => { form_names => [ qw(edit_form ...) ], path => 'edit.html', ... }, ... ); ... } #### sub do_whatever { ... $app->show_page('edit_page'); } #### ... <% $form->start_html %> <% $form->field('start_date')->html %> ... <% $form->end_html %> <%args> $form #### /mywebapp/edit?start_date=1/2/2005 /mywebapp/edit?start_date.month=1&start_date.day=2&start_date.year=2005 #### $form->field('start_date.day')->input_value(1); $form->field('start_date')->field('day')->input_value(1); #### $form->field('start_date')->input_value('1/31/1988'); $form->field('start_date')->input_value(DateTime->new(...));