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

NAME

CONFIG::Hash - Class to read 2-column files into a hash

SYNOPSIS

   use CONFIG::Hash;

   my $file = CONFIG::Hash->new($filename, \%config);

   $hash_ref = $file->get();

   $value = $file->get($key);

DESCRIPTION

Parses a two-column formated file into a hash. The module uses the CONFIG::Plain class so you can use all features of the Plain module.

METHODS

new - parse file (read via CONFIG::Plain) into hash

Configuration Options:

   -> all described in CONFIG::Plain are known


   KEYREGEXP

        Scalar holding a regular expression which must match every key.

        DEFAULT: "^(\\S+)"

        HINT: Since the first character of a line has to be a non-white-space
              character it is possible to make multi-line values.
              Have a look at the examples.

   HASHREGEXP

        Scalar holding a regular expression which matches the content.

        DEFAULT: "\\s+(.*)\$"

   SUBSTITUTENEWLINE

        If defined all NewLine characters in the value will be substituted
        with this scalar.

        DEFAULT: "\n"
        
   REQUIRE

        Reference to a Array which holds list of required variables.

        DEFAULT: []

   DEFAULT
        
        Reference to Hash holding default Values.

        DEFAULT: {}

   ALLOWREDEFINE

        Scalar switch to suppress error messages if the same key is
        redefined at a later point in file.

        DEFAULT: 1

   CASEINSENSITIVE

        All keys are convertet into lower case if this option was defined.

        DEFAULT: undef

get - get a reference to the hash or a specified field

   $hash_ref = $file->get();

      Returns a reference to the hash holding all data from file.

   $value = $file->get($key);

      Returns the value to the specified key.

get_line - get the linenumber where this key was found

   $line_nr = $file->get_line($key);
 
      Returns a scalar holding the line number. Call often to get
      include path.

get_file - get the filename where this key was found

   $filename = $file->get_file($key);

      Returns a scalar holding the filename. Call often to get
      include path.

EXAMPLES

        Assumes default configuration

        >KEY    This is a very stupid text
        >       but it shows the functionality \
        >       of this module

        Will get into
        'KEY' => "This is a very stupid text\nbut it shows the functionality of this module"

        With the config setting 'SUBSTITUTENEWLINE' => ' '
        
        >INSERT insert into 
        >       table dummy
        >               (col1, col2, col3)
        >       values
        >               (1, "value", "value2");

        Will get into
        'INSERT' => 'insert into table dummy (col1, col2, col3) values (1, "value", "value2");'

SEE ALSO

CONFIG::Plain(3pm)

The CONFIG:: Guide at http://www.fatalmind.com/programs/CONFIG/

COPYRIGHT

    Copyright (C) 1999, 2000 by Markus Winand <mws@fatalmind.com>

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