use CGI;
my $query = CGI->new;
my @names = $query->param;
my %hash = map { $_, $query->param( $_ ) } @names;
####
my %hash = map { my @vals = $query->param( $_ ); $_, \@vals } @names;
####
#!c:/perl/bin/perl.exe -wT
use strict;
use Data::Dumper;
use CGI;
my $query = CGI->new;
my @names = $query->param;
my %hash = map { $_, $query->param( $_ ) } @names; # Clearly broken
my %hash2 = map { $_, [$query->param( $_ )] } @names; # works great
my %chipmunk = $query->Vars; # Lincoln should have known better!
my $q2 = CGI->new;
print $query->header,
$query->start_html,
$query->pre( $query->h1('First Query'), Dumper( $query )),
$query->pre( $query->h1('Second Query'), Dumper( $q2 )),
$query->pre( $query->h1('Hash'), Dumper( \%hash )),
$query->pre( $query->h1('Hash2'), Dumper( \%hash2 )),
$query->pre( $query->h1('Chipmunk'), Dumper( \%chipmunk )),
$query->end_html;