The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Config::IniHash - Perl extension for reading and writing INI files

version 2.7

SYNOPSIS

  use Config::IniHash;
  $Config = ReadINI 'c:\some\file.ini';

DESCRIPTION

This module reads and writes INI files.

Functions

ReadINI

        $hashreference = ReadINI ($filename, %options)

The returned hash contains a reference to a hash for each section of the INI.

    [section]
    name=value
  leads to
    $hash->{section}->{name}  = value;

The available options are:

heredoc

- controls whether the module supports the heredoc syntax :

        name=<<END
        the
        many lines
        long value
        END
        othername=value

Default: 0 = OFF

systemvars

- controls whether the (system) variables enclosed in %% are interpolated and optionaly contains the values in a hash ref.

    name=%USERNAME%
  leads to
    $data->{section}->{name} = "Jenda"

        systemvars = 1  - yes, take values from %ENV
        systemvars = \%hash     - yes, take values from %hash
        systemvars = 0  - no
case

- controls whether the created hash is case insensitive. The possible values are

  sensitive     - the hash will be case sensitive
  tolower       - the hash will be case sensitive, all keys are made lowercase
  toupper       - the hash will be case sensitive, all keys are made uppercase
  preserve      - the hash will be case insensitive, the case is preserved
  lower - the hash will be case insensitive, all keys are made lowercase
  upper - the hash will be case insensitive, all keys are made uppercase
withdefaults

- controls whether the created section hashes support defaults.

sectionorder

- if set to a true value then created hash will contain

        $config->{'__SECTIONS__'} = [ 'the', 'names', 'of', 'the', 'sections', 'in', 'the',
                'order', 'they', 'were', 'specified', 'in', 'the', 'INI file'];
forValue

- allows you to install a callback that will be called for each value as soon as it is read but before it is stored in the hash. The function is called like this:

  $value = $forValue->($name, $value, $sectionname, $INIhashref);

If the callback returns an undef, the value will not be stored.

comment

- regular expression used to identify comments or a string containing the list of characters starting a comment. Each line is tested against the regexp is ignored if matches. If you specify a string a regexp like this will be created:

        qr/^\s*[the_list]/

The default is

        qr/^\s*[#;]

You may also set the defaults for the options by modifying the $Config::IniHash::optionname variables. These default settings will be used if you do not specify the option in the ReadINI() or ReadSection() call.

ReadSection

  $hashreference = ReadSection ($string)

This function parses a string as if it was a section of an INI file and creates a hash with the values. It accepts the same options as ReadINI.

WriteINI

  WriteINI ($filename, $hashreference)

Writes the hash of hashes to a file.

PrintINI

The same as WriteINI().

AUTHOR

Jan Krynicky <Jenda@Krynicky.cz> http://Jenda.Krynicky.cz

COPYRIGHT

Copyright (c) 2002-2005 Jan Krynicky <Jenda@Krynicky.cz>. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.