#!/usr/local/bin/perl5

# Very much like the get_post.pl, except we're passing a request
# method to parse_form_data.

use CGI::Lite;

$cgi  = new CGI::Lite;

# We specifically instruct CGI::Lite to read POSTed form data. Why
# is this useful, you may ask? This forces the user to fill out
# your form -- where the METHOD is POST -- as opposed to passing a 
# query string to the CGI program, like so:
#
#     http://www.some.com/cgi-bin/program.pl?name=john&age=45

%data = $cgi->parse_form_data ('POST');

print "Content-type: text/plain", "\n\n";

while (($key, $value) = each %data) {

    # Let's check to see if a value is a reference to an array,
    # which indicates multiple values for the field.

    if (ref $value) {
	@all_values = $cgi->get_multiple_values ($value);

	print "$key = @all_values\n";
    } else {
	print "$key = $value\n";
    }
}

print "\nHere are the same key/value pairs in order:\n";

foreach $key ($cgi->get_ordered_keys) {
    $value = $data{$key};

    if (ref $value) {
	@all_values = $cgi->get_multiple_values ($value);

	print "$key = @all_values\n";
    } else {
	print "$key = $value\n";
    }
}

exit (0);
