こう書けるの

use CGI ':all';
my %p = map{$_ => [param($_)]}param();
my @error = param_check(
[
 {name=>'name', notnull=>1, length=>128, disp=>'名前'},
 {name=>'mail', notnull=>0, length=>256, code=>\&chk_mail, disp=>'E-mail'},
 {name=>'msg', notnull=>1, length=>3000, disp=>'メッセージ'}
],
\%p
);
error(@error) if @error;

つくろう。