| Config-Backend-INI documentation | Contained in the Config-Backend-INI distribution. |
Config::Backend::INI - a .ini file backend for conf
Config::Backend::INI is an INI file (windows alike) backend for Conf.
It handles a an INI file with identifiers that are
assigned values. Identifiers with a '.' (dot) in it,
are divided in a section and a variable.
This module uses Config::IniFiles for reading and writing .INI files.
Each call to set() or del() will immediately result in a
commit to the .ini file.
new(filename) --> Config::Backend::INIInvoked with a valid filename, will return a Config::Backend::INI object that is connected to this file.
This function will untie from the ini file.
set(var,value) --> voidSets config key var to value. If var contains a dot (.), the characters prefixing the '.' will represent a section in the .ini file. Sample:
$conf->set("section.var","value")
will result in:
[section] var=value
get(var) --> stringReads var from config. Returns undef, if var does not
exist. Returns the value of configuration item var,
otherwise.
del(var) --> voidDeletes variable var from the Configuration.
variables() --> list of stringsReturns all variables in the configuraton backend.
Hans Oesterholt-Dijkema, <oesterhol@cpan.org>
Copyright 2004 by Hans Oesterholt-Dijkema
This library is free software; you can redistribute it and/or modify it under LGPL.
| Config-Backend-INI documentation | Contained in the Config-Backend-INI distribution. |
package Config::Backend::INI; use 5.006; use strict; use Config::IniFiles; our $VERSION='0.12'; my $DEFSECT="!!Conf::INI!!default!!"; sub new { my $class=shift; my $file=shift; my $self; my $ini; if ((-z $file) or (not -e $file)) { $ini=new Config::IniFiles(); $ini->newval($DEFSECT,$DEFSECT,1); $ini->WriteConfig($file); } $ini=new Config::IniFiles(-file => $file); if (not defined $ini) { die "Cannot open ini file $file\n"; } $self->{"ini"}=$ini; bless $self,$class; return $self; } sub DESTROY { my $self=shift; $self->{"ini"}->RewriteConfig(); } sub set { my $self=shift; my $_var=shift; my $val=shift; my ($section,$var)=split /[.]/,$_var,2; if (not defined $var) { $var=$section; $section=$DEFSECT; } if (not defined $self->{"ini"}->setval($section,$var,$val)) { $self->{"ini"}->newval($section,$var,$val); } $self->{"ini"}->RewriteConfig(); } sub get { my $self=shift; my $_var=shift; my ($section,$var)=split /[.]/,$_var,2; if (not defined $var) { $var=$section; $section=$DEFSECT; } return $self->{"ini"}->val($section,$var); } sub del { my $self=shift; my $_var=shift; my ($section,$var)=split /[.]/,$_var,2; if (not defined $var) { $var=$section; $section=$DEFSECT; } $self->{"ini"}->delval($section,$var); $self->{"ini"}->RewriteConfig(); } sub variables { my $self=shift; my @vars; for my $s ($self->{"ini"}->Sections()) { for my $v ($self->{"ini"}->Parameters($s)) { if ($s eq $DEFSECT) { if ($v ne $DEFSECT) { push @vars,$v; } } else { push @vars,"$s.$v"; } } } return @vars; } 1; __END__