---
name: "Data::FormValidator::ConstraintsFactory"
section: "3pm"
platform: "linux"
package: "libdata-formvalidator-perl"
version: "4.88-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Data::FormValidator::ConstraintsFactory"
---

# Data::FormValidator::ConstraintsFactory(3pm)

Module to create constraints for HTML::FormValidator.

## NAME

Data::FormValidator::ConstraintsFactory - Module to create constraints for HTML::FormValidator.

## DESCRIPTION

This module contains functions to help generate complex constraints.

If you are writing new code, take a look at Data::FormValidator::Constraints::MethodsFactory instead. It's a modern alternative to what's here, offering improved names and syntax.

## SYNOPSIS

```
    use Data::FormValidator::ConstraintsFactory qw( :set :bool );
    constraints => {
    param1 => make_or_constraint(
            make_num_set_constraint( -1, ( 1 .. 10 ) ),
            make_set_constraint( 1, ( 20 .. 30 ) ),
          ),
    province => make_word_set_constraint( 1, "AB QC ON TN NU" ),
    bid  => make_range_constraint( 1, 1, 10 ),
    }
```

## BOOLEAN CONSTRAINTS

Those constraints are available by using the `":bool"` tag.

### make\_not\_constraint( $c1 )

This will create a constraint that will return the negation of the result of constraint `$c1`.

### make\_or\_constraint( @constraints )

This will create a constraint that will return the result of the first constraint that return an non false result.

### make\_and\_constraint( @constraints )

This will create a constraint that will return the result of the first constraint that return an non false result only if all constraints returns a non-false results.

## SET CONSTRAINTS

Those constraints are available by using the `":set"` tag.

### make\_set\_constraint( $res, @elements )

This will create a constraint that will return `$res` if the value is one of the `@elements` set, or the negation of `$res` otherwise.

The `"eq"` operator is used for comparison.

### make\_num\_set\_constraint( $res, @elements )

This will create a constraint that will return `$res` if the value is one of the `@elements` set, or the negation of `$res` otherwise.

The `"=="` operator is used for comparison.

### make\_word\_set\_constraint( $res, $set )

This will create a constraint that will return `$res` if the value is a word in `$set`, or the negation of `$res` otherwise.

### make\_cmp\_set\_constraint( $res, $cmp, @elements )

This will create a constraint that will return `$res` if the value is one of the `@elements` set, or the negation of `$res` otherwise.

`$cmp` is a function which takes two argument and should return true or false depending if the two elements are equal.

## NUMERICAL LOGICAL CONSTRAINTS

Those constraints are available by using the `":num"` tag.

### make\_clamp\_constraint( $res, $low, $high )

This will create a constraint that will return `$res` if the value is between `$low` and `$high` bounds included or its negation otherwise.

### make\_lt\_constraint( $res, $bound )

This will create a constraint that will return `$res` if the value is lower than `$bound`, or the negation of `$res` otherwise.

### make\_le\_constraint( $res, $bound )

This will create a constraint that will return `$res` if the value is lower or equal than `$bound`, or the negation of `$res` otherwise.

### make\_gt\_constraint( $res, $bound )

This will create a constraint that will return `$res` if the value is greater than `$bound`, or the negation of `$res` otherwise.

### make\_ge\_constraint( $res, $bound )

This will create a constraint that will return `$res` if the value is greater or equal than `$bound`, or the negation of `$res` otherwise.

## OTHER CONSTRAINTS

### make\_length\_constraint($max\_length)

This will create a constraint that will return true if the value has a length of less than or equal to `$max_length`

## SEE ALSO

**Data::FormValidator**(3)

## AUTHOR

Author: Francis J. Lacoste \<francis.lacoste@iNsu.COM\> Maintainer: Mark Stosberg \<mark@summersault.com\>

## COPYRIGHT

Copyright (c) 2000 iNsu Innovations Inc. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms as perl itself.
