I have just uploaded Class::CGI 0.03 to the CPAN. It should be there soon. Basically, it lets you treat form data as a collection of objects. It's very easy to use and extend. You can now set up a profile file which is a centralized spot for your handler declarations (these tell which CGI parameters get mapped to which objects). You can now do things like this:
use Class::CGI profiles => $location_of_profile_file, use => [qw/ order_date order /]; my $cgi = Class::CGI->new; my $order = $cgi->param('order'); my $onum = $order->number;
Because of the new profile file, larger sites can share this behavior across all of their code without worrying about duplication. Of course, you can also set profiles on a "per instance" basis rather than worry the global effects shown above. You'll want to see the docs or this Perlmonks thread for more information.