book/Dotenv
Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
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 <https://12factor.net/config> 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, <https://12factor.net/>.
* Python implentation, <https://pypi.org/project/python-dotenv/>.
* Ruby implementation, <https://rubygems.org/gems/dotenv/>.
* Node implementation, <https://www.npmjs.com/package/dotenv>.
ACKNOWLEDGEMENTS
The original version of this module was created as part of my work for
BOOKING.COM <http://www.booking.com/>, which authorized its
publication/distribution under the same terms as Perl itself.
AUTHOR
Philippe Bruhat (BooK) <book@cpan.org>
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.