Since I already /msg'd you, this here for posterity.
Don't forget to binmode LOG
You have to identify when the data is turning to rubbish and if in fact it is being turned to rubbish.
You should verify your browser is sending what it's supposed to be sending.
You should verify your program is receiving what it should be receiving
(just binmode STDIN, read off STDIN before CGI.pm has a chance to touch it).
After that you should ensure that CGI.pm is doing the right thing
and that Data::Dumper (don't forget the Useqq option) is doing the right thing
If applying binmode and Useqq does not solve your problem,
my guess is that either your browser is sending weird stuff (likely depending on browser),
or your apache is somehow mangling the input (anything could happen I guess).
MJDsays "you can't just make shit up and expect the computer to know what you mean, retardo!"