NAME
    MySQL::Config - Parse and utilize MySQL's /etc/my.cnf and ~/.my.cnf
    files

SYNOPSIS
        use MySQL::Config;

        my @groups = qw(client myclient);
        my $argc = 0;
        my @argv = ();

        load_defaults "my", @groups, $argc, @argv;

DESCRIPTION
    MySQL::Config emulates the load_defaults() function from mysqlclient.
    Just like load_defaults(), it returns a list primed to be passed to
    getopt_long(), a.k.a. Getopt::Long. load_defaults takes 4 arguments: a
    string denoting the name of the config file (which should generally be
    "my"); an array of groups which should be returned; a scalar that will
    hold the total number of parsed elements; and an array that will hold
    the final versions of the extracted name, value pairs. This final array
    will be in a format suitable for processing with Getopt::Long:

        --user=username
        --password=password

    and so on.

    load_defaults() has an un-Perlish interface, mostly because it is
    exactly the same signature as the version from the C API. There is also
    a function, not exported by default, called parse_defaults(), which
    returns a hash of parsed (name, value) pairs (or a hashref in scalar
    context):

        use MySQL::Config qw(parse_defaults);

        my %cfg = parse_defaults("my", [ qw(client myclient) ]);

    %cfg looks like:

        %cfg = (
            "user" => "username",
            "password" => "password",
        )

    and so on. This might be a more natural interface for some programs;
    however, load_defaults() is more true to the original.

USING SOMETHING OTHER THAN "my" AS THE FIRST STRING
    This string controls the name of the configuration file; the names work
    out to, basically:

        ~/.${cfg_name}.cnf

    and

        /etc/${cnf_name}.cnf

    If you are using this module for mysql clients, then this should
    probably remain my. Otherwise, you are free to mangle this however you
    choose.

        $ini = parse_defaults("your", [ "foo" ]);

BUGS / KNOWN ISSUES
    The C version of load_defaults() returns elements in the order in which
    they are defined in the file; this version returns them in hash order,
    with duplicates removed.

VERSION
    $Revision: 1.2 $

AUTHOR
    darren chamberlain <darren@cpan.org>

