The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

config - Perl module constant configurator

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;

.config.pm file:

package config;

config 'My::Query' => (
    DB_HOST => "mydb.com",
);

1;

What should happen:

use lib 'lib';
use My::Query;

$My::Query::connect # \> mysql://root:pass@mydb.com/mizericordia

DESCRIPTION

use config creates a constant in the same way as use constant, but takes the value from the project's local config file if one is specified there.

The config file ./.config.pm is located in the root directory of the project.

The current directory in the project must correspond to the project root.

Since the config.pm pragma module is overridden on <metacpan.org> by the config.pod file from the WordNet-Similarity package, this manual (config::Manual) is used.

METHODS

import ($name, [$value])

# Одна константа
use config A => 10;

# Много констант:
use config {
    B => 3,
    C => 4,
};

A # => 10
B # => 3
C # => 4

# И в рантайме:
config->import('D' => 5);

D() # => 5

# Без параметров:
use config;

config MODULE => (...)

The function is used in the config file (./.config.pm) to configure Perl modules. For config it should start with package config;.

config::config 'main' => (
    D => 10,
    X => 12,
);

config->import('X' => 15);

D() # => 5
X() # => 12

AUTHOR

Yaroslav O. Kosmina mailto:dart@cpan.org

LICENSE

Perl5

COPYRIGHT

The config module is copyright (c) 2023 Yaroslav O. Kosmina. Rusland. All rights reserved.