---
name: "Declare::Constraints::Simple::Library::Array"
section: "3pm"
platform: "linux"
package: "libdeclare-constraints-simple-perl"
version: "0.03-1.1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Declare::Constraints::Simple::Library::Array"
---

# Declare::Constraints::Simple::Library::Array(3pm)

Array Constraints

## NAME

Declare::Constraints::Simple::Library::Array - Array Constraints

## SYNOPSIS

```
  # accept a list of pairs
  my $pairs_validation = IsArrayRef( HasArraySize(2,2) );
  # integer => object pairs
  my $pairs = And( OnEvenElements(IsInt),
                   OnOddElements(IsObject) );
  # a three element array
  my $tri = And( HasArraySize(3,3),
                 OnArrayElements(0, IsInt,
                                 1, IsDefined,
                                 2, IsClass) );
```

## DESCRIPTION

This module contains all constraints that can be applied to array references.

## CONSTRAINTS

### HasArraySize(\[$min, \[$max\]\])

With `$min` defaulting to 1. So a specification of

```
  my $profile = HasArraySize;
```

checks for at least one value. To force an exact size of the array, specify the same values for both:

```
  my $profile = HasArraySize(3, 3);
```

### OnArrayElements($key =\> $constraint, $key =\> $constraint, ...)

Applies the the `$constraint`s to the corresponding `$key`s if they are present. For required keys see `"HasArraySize"`.

### OnEvenElements($constraint)

Runs the constraint on all even elements of an array. See also  `"OnOddElements"`.

### OnOddElements($constraint)

Runs the constraint on all odd elements of an array. See also `"OnEvenElements"`.

## SEE ALSO

Declare::Constraints::Simple, Declare::Constraints::Simple::Library

## AUTHOR

Robert 'phaylon' Sedlacek `"<phaylon@dunkelheit.at>"`

## LICENSE AND COPYRIGHT

This module is free software, you can redistribute it and/or modify it  under the same terms as perl itself.
