# DFV profile: constraints => { customer_name => My::Customer->from_cgi } #### # object implementation package My::Customer; sub from_cgi { my $pkg = shift; return { params => [ qw/ customer_name email age / ], constraint => sub { my ($name, $email, $age) = @_; # untaint, trim, whatever return $pkg->find_or_create( ... ); } }; }