How about even more simply and efficiently
using methods provided by CGI.pm ...
my %input = CGI::Vars;
While it works, Vars was really intended for compatability with the old cgi-lib.pl library, and so such shares the same quirks, like null (\0) seperated values for any multi-valued parameters.
Instead, I'd use CGI's Dump method...
Dumping Out All The Name/Value Pairs
The Dump() method produces a string consisting of
all the query's name/value pairs formatted nicely
as a nested list. This is useful for debugging
Produces something that looks like this: