---
name: "Env::Assert"
section: "3pm"
platform: "linux"
package: "env-assert"
version: "0.010-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Env::Assert"
---

# Env::Assert(3pm)

Ensure that the environment variables match what you need, or abort.

## NAME

Env::Assert - Ensure that the environment variables match what you need, or abort.

## VERSION

version 0.010

## SYNOPSIS

```
    use Env::Assert qw( assert report_errors );
    my %want = (
        options => {
            exact => 1,
        },
        variables => {
            USER => { regexp => '^[[:word:]]{1}$', required => 1 },
        },
    );
    my %parameters;
    $parameters{'break_at_first_error'} = 1;
    my $r = assert( \%ENV, \%want, \%parameters );
    if( ! $r->{'success'} ) {
        print report_errors( $r->{'errors'} );
    }
```

## STATUS

Package Env::Assert is currently being developed so changes in the API are possible, though not likely.

## NOTES

## DEPENDENCIES

No external dependencies outside Perl's standard distribution.

## FUNCTIONS

No functions are automatically exported to the calling namespace.

### assert( \\%env, \\%want, \\%params )

Ensure your environment, parameter *env* (hashref), matches with the environment description, parameter *want* (hashref). Use parameter *params* (hashref) to specify processing options.

Supported params:

- break\_at\_first\_error

  Verify environment only up until the first error. Then break and return with only that error.

Return: hashref: { success =\> 1/0, errors =\> hashref, };

### report\_errors( \\%errors )

Report errors in a nicely formatted way.

### file\_to\_desc( @rows )

Extract an environment description from a *.envdesc* file.

## AUTHOR

Mikko Koivunalho \<mikkoi@cpan.org\>

## COPYRIGHT AND LICENSE

This software is copyright (c) 2023 by Mikko Koivunalho.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
