CGI/Expand version 1.02
=======================

NAME
    CGI::Expand - convert flat hash to nested data using TT2's dot
    convention

SYNOPSIS
            use CGI::Expand;
            use CGI; # or Apache::Request, etc.

            $args = expand_cgi( CGI->new('a.0=3&a.2=4&b.c.0=x') );
            # $args = { a => [3,undef,4], b => { c => ['x'] }, }

            # Or to catch exceptions:
            eval {  
                    $args = expand_cgi( CGI->new('a.0=3&a.2=4&b.c.0=x') );
            } or log_and_exit( $@ );

            #-----
            use CGI::Expand qw(expand_hash);

            $args = expand_hash({'a.0'=>77}); # $args = { a => [ 77 ] }

DESCRIPTION
    Converts a CGI query into structured data using a dotted name convention
    similar to TT2.

    "expand_cgi" works with CGI.pm, Apache::Request or anything with an
    appropriate "param" method. Or you can use "expand_hash" directly.

Motivation
    The Common Gateway Interface restricts parameters to name=value pairs,
    but often we'd like to use more structured data. This module uses a name
    encoding convention to rebuild a hash of hashes, arrays and values.
    Arrays can either be ordered, or from CGI's multi-valued parameter
    handling.

    The generic nature of this process means that the core components of
    your system can remain CGI ignorant and operate on structured data.
    Better for modularity, better for testing.

    (This problem has appeared a few times in other forums, "SEE ALSO")


INSTALLATION

To install this module type the following:

   perl Makefile.PL
   make
   make test
   make install

COPYRIGHT AND LICENCE

Copyright (c) 2004 Brad Bowman. All rights reserved.
This program is free software; you can redistribute it and/or
modify it under the same terms as Perl itself.

