.:NAME:. Config::Simple - Simple Configuration File Class .:SYNPOSIS:. in the app.cfg configuration file: [mysql] host=ultracgis.com login=sherzodr password=secret [profile] first name=Sherzod last name=Ruzmetov email=sherzodr@cpan.org in your Perl application: use Config::Simple; my $cfg = new Config::Simple(filename=>"app.cfg"); print "MySQL host: ", $config->param("mysql.host"), "\n"; print "MySQL login: ", $config->param("mysql.login"), "\n"; # tied access method: tie my %Config, "Config::Simple::Tie", "app.cfg", O_RDONLY|O_CREAT or die $Config::Simple::errstr; print "MySQL host: ", $Config{'mysql.host'}, "\n"; # setting new MySQL host value $Config{'mysql.host'} = "new.localhost"; # this also updates the file delete $Config{'mysql.RaiseError'}; # also updates the file .:NOTE:. This documentation refers to version 2.0 of Config::Simple. If you have a version older than this, please update it to the latest release ASAP (before you get burned). .:DESCRIPTION:. This Perl5 library makes it very easy to parse INI-styled configuration files and create once on the fly. It optionally requires L module .:CONFIGURATION FILE:. Configuration file that Config::Simple uses is similar to Window's *.ini file syntax. Example., ; sample.cfg [block1] key1=value1 key2=value2 ... [block2] key1=value1 key2=value2 ... It can have infinite number of blocks and infinite number of key/value pairs in each block. Block and key names are case sensitive. i.e., [block1] and [Block1] are two completely different blocks. But this might change in the subsequent releases of the library. So please use with caution! Lines that start with either ';' (semi colon) or '#' (pound) are assumed to be comments till the end of the line. If a line consists of a sole '.' (dot), then all the lines till eof are ignored (it's like __END__ Perl token) When you create Config::Simple object with $cfg = new Config::Simple(filename=>"sample.cfg") syntax, it reads the above sample.cfg config file, parses the contents, and creates required data structure, which you can access through its public L. In this documenation when I mention "name", I'll be refering to block name and key delimited with a dot (.). Forexample, from the above sample.cfg file, following names could be retrieved: block1.key1, block1.key2, block2.key1 and block2.key2 etc. Here is the configuration file that I use in most of my CGI applications, and I'll be using it in most of the examples throughout this manual: ;app.cfg [mysql] host=ultracgis login=sherzodr password=secret db_name=test RaiseError=1 PrintError=1 .:AUTHOR:. Sherzod Ruzmetov