NAME
config - Perl module constant configurator
VERSION
1.2
SYNOPSIS
File lib/My/Query.pm:
package My::Query;
use config DB_NAME => "mizericordia";
use config DB_HOST => "192.168.0.1";
use config {
DB_USER => "root",
DB_PASSWORD => "pass",
};
our $connect = "mysql://" . DB_USER . ":" . DB_PASSWORD . "\@" . DB_HOST . "/" . DB_NAME;
1;
File .config.pm:
package config;
config_module 'My::Query' => {
DB_HOST => "mydb.com",
};
1;
What happened:
use lib 'lib';
use My::Query;
$My::Query::connect # \> mysql://root:pass@mydb.com/mizericordia
DESCRIPTION
Config make constant as use constant
, but it values substitutes on values from local config if exists.
Local config is the ./.config.pm in root folder of the project.
The project must start from this folder in order for the ./.config.pm to be read.
METHODS
import ($name, [$value])
# One constant
use config A => 10;
# Multiconstants:
use config {
B => 3,
C => 4,
};
A # => 10
B # => 3
C # => 4
# And at runtime:
config->import('D' => 5);
D() # => 5
# without params
use config;
config_module MODULE => {...}
Subroutine use in local config (./.config.pm) for configure perl module. To do this, the config must have package config
.
# config_module at runtime set only runtime constants
config::config_module 'main' => {
D => 10,
X => 12,
};
config->import('X' => 15);
D() # => 5
X() # => 12
INSTALL
Add to cpanfile in your project:
on 'test' => sub {
requires 'config',
git => 'https://github.com/darviarush/perl-config.git',
ref => 'master',
;
};
And run command:
$ sudo cpm install -gvv
AUTHOR
Yaroslav O. Kosmina Lmailto:dart@cpan.org
LICENSE
⚖ GPLv3