in reply to Bad Practice

As far as I can see, this code does exactly what CGI.pm does if you do this:
use CGI; CGI::ReadParse();
that is, it puts everything into a hash called "%in", with multiple values separated by \0 if need be.

Only, as pointed out previously. CGI.pm will also be taking care of a lot of other stuff to do with methods other than POST or GET, security and so on.
--

“Every bit of code is either naturally related to the problem at hand, or else it's an accidental side effect of the fact that you happened to solve the problem using a digital computer.”
M-J D