FormValidator::Simple
はじめて使ってみた(正確にはラッパーは使ったことはあるけども)。最初の見た目がゴツかったが使ってみれば便利〜。
use FormValidator::Simple; my $params = +{ param1 => '12345', param2 => 'abcdefg', param3 => undef, mail1 => 'test@example.com', mail2 => 'test2@example.com', year => 2010, month => 2, day => 30, }; my $result = FormValidator::Simple->check( $params => [ param1 => ['NOT_BLANK', 'ASCII'], param2 => ['NOT_BLANK', 'INT', ['LENGTH', 1, 3]], param3 => ['NOT_BLANK'], mail1 => ['EMAIL_LOOSE'], mail2 => ['EMAIL_LOOSE'], { mails => ['mail1', 'mail2'] } => ['DUPLICATION'], { date => ['year', 'month', 'day'] } => ['DATE'], ] ); if ( $result->has_error ) { for my $key ($result->error) { my @types = map { $_ } $result->error($key); printf "$key:%s\n",join q{,}, @types; } } __END__ param2:INT,LENGTH param3:NOT_BLANK mails:DUPLICATION date:DATE