OpenInteract::Config::Ini - Read/write INI-style (++) configuration files
my $config = OpenInteract::Config::Ini->new({ filename => 'myconf.ini' }); print "Main database driver is:", $config->{db_info}{main}{driver}, "\n"; $config->{db_info}{main}{username} = 'mariolemieux'; $config->write_config;
This is a very simple implementation of a configuration file reader/writer that preserves comments and section order, enables multivalue fields and one or two-level sections.
Yes, there are other configuration file modules out there to manipulate INI-style files. But this one takes several features from them while providing a very simple and uncluttered interface.
From Config::IniFiles we take comment preservation and the idea that we can have multi-level sections like:
[Section subsection]
From Config::Ini and AppConfig we borrow the usage of multivalue keys:
item = first item = second
Given the following configuration in INI-style:
[datasource] default_connection_db = main db = main db = other [db_info main] db_owner = username = captain password = whitman dsn = dbname=usa db_name = driver_name = Pg sql_install = long_read_len = 65536 long_trunc_ok = 0 [db_info other] db_owner = username = tyger password = blake dsn = dbname=britain db_name = driver_name = Pg sql_install = long_read_len = 65536 long_trunc_ok = 0
You would get the following Perl data structure:
$config = { datasource => { default_connection_db => 'main', db => [ 'main', 'other' ], }, db_info => { main => { db_owner => undef, username => 'captain', password => 'whitman', dsn => 'dbname=usa', db_name => undef, driver_name => 'Pg', sql_install => undef, long_read_len => '65536', long_trunc_ok => '0', }, other => { db_owner => undef, username => 'tyger', password => 'blake', dsn => 'dbname=britain', db_name => undef, driver_name => 'Pg', sql_install => undef, long_read_len => '65536', long_trunc_ok => '0', }, }, };
Anything under the 'Global' key in the configuration will be available under the configuration object root. For instance:
[Global] DEBUG = 1
will be available as:
$CONFIG->{DEBUG}
AppConfig
Config::Ini
Config::IniFiles
Copyright (c) 2001-2002 intes.net, inc.. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Chris Winters <chris@cwinters.com>
To install OpenInteract, copy and paste the appropriate command in to your terminal.
cpanm
cpanm OpenInteract
CPAN shell
perl -MCPAN -e shell install OpenInteract
For more information on module installation, please visit the detailed CPAN module installation guide.