in reply to A CGI::Prototype respond() subroutine for Data::FormValidator users

Class::Autouse->autouse($response_page);
If you're using CGI::Prototype::Hidden, this mechanism is already in place. No need to pull in the class.

And for simplicity, I'd write that application class as:

package Gimble::Page::Login::Validate; use base qw(Gimble::Page::Base); sub redo_page { 'Gimble::Page::Login::Redo' } sub confirm_page { 'Gimble::Page::Login::Confirm' } sub dfy_profile { +{ msgs => { format => '%s' }, required => [ qw(login_name password) ], } }
No point in re-setting them as slots every time. Just compile a more-or-less constant subroutine to return them. If you would rather assemble the dfy_profile hash only once, use a closure:
BEGIN { my $d = { msgs => { format => '%s' }, required => [ qw(login_name password) ], }; sub dfy_profile { return $d } }

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.