in reply to splitting question
Using CGI.pm would seem to be especially important in this case. I do not mean this as an insult at all, but if you didn't know about the translation of the plus character, you probably don't know about the other weirdness of encoding used for GET method form submissions. CGI.pm can translate it seamlessly. While understanding the protocol is very useful, true understanding usually leads to the knowledge that it's a pain to implement.