Aion-Env

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

[![Actions Status](https://github.com/darviarush/perl-aion-env/actions/workflows/test.yml/badge.svg)](https://github.com/darviarush/perl-aion-env/actions) [![GitHub Issues](https://img.shields.io/github/issues/darviarush/perl-aion-env?logo=perl)](htt...
# NAME

Aion::Env - создаёт константу связанную со значением из .env

# VERSION

0.1

# SYNOPSIS

Файл .env:
```text
BIN_TEST=10
OCT_TEST=${BIN_TEST}20
```

```perl
BEGIN {
	delete @ENV{qw/BIN_TEST OCT_TEST BB_TEST NN_TEST/};

	$ENV{UNI_TEST} = 30;
}

sub Int { sub { /^-?\d+$/ } }

use Aion::Env BIN_TEST => (isa => Int);
use Aion::Env OCT_TEST => (isa => Int);
use Aion::Env UNI_TEST => (isa => Int);
use Aion::Env BB_TEST => (isa => Int, default => 1);

BIN_TEST; # -> 10
OCT_TEST; # -> 1020
UNI_TEST; # -> 30
BB_TEST; # -> 1

eval 'use Aion::Env NN_TEST => ()'; $@; # ^-> NN_TEST is'nt defined!
eval 'use Aion::Env NN_TEST => (nouname => 1)'; $@; # ^-> Unknown keyword: nouname
eval 'use Aion::Env NN_TEST => (nouname1 => 1, nouname2 => 2)'; $@; # ^-> Unknown keywords: nouname1, nouname2
```

# DESCRIPTION

Ð’ проектах используется конфигурационный файл `.env` для конфигурации проекта, в `Makefile`, для `docker` и `docker compose`. Данный модуль позволяет оформÐ...

Константы инициализируются из `%ENV`, если там нет значения или оно `undef`, то из файла `.env`, а если и там его не будет – из опции `default`.

При парсинге файла, ошибка синтаксиса приведёт к исключению.

Тип переменной окружения можно проверять с помощью опции `isa`. Она принимает подпрограмму или объект с перегруженным оператором `${}`. Ð’ этÐ...

Рекомендуется называть переменные окружения используя название модуля в котором она объявлена. Например, пакет `Aion::Type`, тогда имена перÐ...

# SUBROUTINES

## import ($cls, $name, %kw)

Создаёт константу с именем `$name` в пакете из которого вызван.
Опционально можно передать в `%kw` `isa` и `default`.

## parse ($file)

Парсит файл формата `.env` и возвращает хеш с переменными из него.

# AUTHOR

Yaroslav O. Kosmina <dart@cpan.org>

# LICENSE

âš– **Perl5**

# COPYRIGHT

The Aion::Env module is copyright © 2026 Yaroslav O. Kosmina. Rusland. All rights reserved.



( run in 0.691 second using v1.01-cache-2.11-cpan-13bb782fe5a )