An open API service indexing awesome lists of open source software.

https://github.com/book/dotenv

Dotenv support for Perl
https://github.com/book/dotenv

Last synced: 4 months ago
JSON representation

Dotenv support for Perl

Awesome Lists containing this project

README

          

NAME

Dotenv - Support for "dotenv" in Perl

SYNOPSIS

# basic operation
use Dotenv; # exports nothing
Dotenv->load; # merge the content of .env in %ENV

# do it all in one line
use Dotenv -load;

# the source for environment variables can be a file, a filehandle,
# a hash reference, an array reference and several other things
# the sources are loaded in %ENV without modifying existing values
Dotenv->load(@sources);

# sources can also be loaded via import
use Dotenv -load => 'local.env';

# add some local stuff to %ENV (from a non-file source)
# (.env is the default only if there are no arguments)
Dotenv->load( \%my_env );

# return a reference to a hash populated with the key/value pairs
# read in the file, but do not set %ENV
my $env = Dotenv->parse('app.env');

# dynamically add to %ENV
local %ENV = %{ Dotenv->parse( \%ENV, 'test.env' ) };

# order of arguments matters, so this might yield different results
# (here, values in 'test.env' take precedence over those in %ENV)
local %ENV = %{ Dotenv->parse( 'test.env', \%ENV ) };

DESCRIPTION

"Dotenv" adds support for .env to Perl.

Storing configuration in the environment separate from code comes from
The Twelve-Factor App methodology. This is done via .env files, which
contains environment variable definitions akin to those one would write
for a shell script.

THE "ENV" FORMAT
Data Format
The "env" data format is a line-based format consisting of lines of the
form:

KEY=VALUE

The format is somewhat compatible with shell (so with a minimum of
effort, it's possible to read the environment variables use the "." or
"source" shell builtins).

SEE ALSO

* The Twelve-Factor app methodology, .

* Python implentation, .

* Ruby implementation, .

* Node implementation, .

ACKNOWLEDGEMENTS

The original version of this module was created as part of my work for
BOOKING.COM , which authorized its
publication/distribution under the same terms as Perl itself.

AUTHOR

Philippe Bruhat (BooK)

COPYRIGHT

Copyright 2019 Philippe Bruhat (BooK), all rights reserved.

LICENSE

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