The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
use Test::More tests => 5;

package MyVal;

use Validation::Class;

field password      => {required    => 1};
field password_conf => {mixin_field => 'password', matches => 'password'};
field chng_password => {depends_on  => ['password_conf']};

package main;

my $v = MyVal->new(params => {chng_password => 1});

ok $v, 'initialization successful';
ok !$v->validate(qw/chng_password password_conf/), 'validation failed';
ok $v->error_count == 1, 'validation failed because password_conf is requried';

$v->params->add(password_conf => 1);

ok !$v->validate(qw/chng_password password_conf/), 'validation failed';
ok $v->error_count == 1,
  'validation failed because password_conf does not match password';