=head1 MojoX::Validator my $validator = MojoX::Validator->new; # Fields $validator->field('phone')->required(1)->regexp(qr/^\d+$/); $validator->field([qw/firstname lastname/]) ->each(sub { shift->required(1)->length(3, 20) }); # Groups $validator->field([qw/password confirm_password/]) ->each(sub { shift->required(1) }); $validator->group('passwords' => [qw/password confirm_password/])->equal; # Conditions $validator->field('document'); $validator->field('number'); $validator->when('document')->regexp(qr/^1$/) ->then(sub { shift->field('number')->required(1) }); $validator->validate($values_hashref); my $errors_hashref = $validator->errors; my $pass_error = $validator->group('passwords')->error; my $validated_values_hashref = $validator->values;