# .. snip # Part of my hash to pass to D::FV constraints => { dn_id => 'OK_int', b => { constraint => 'custom_constraint_sub_name', params => [ qw/ b a / ], }, c => { constraint => 'custom_constraint_sub_name', params => [ qw/ c a / ], }, } # .. snip ... # Defining my constraint routine elsewhere: ################################# sub match_custom_constraint_sub_name { my $val = shift; my $a = shift; if ( $a eq 'N' ) { return match_another_custom_constraint($val) ; } else { return "0"; # use this default value }