If you are attempting to implement my code from
this node, PLEASE DON'T.
Even if you arent, and you are being paid to do this, you owe it to your employers to take the five minutes to read
perlman::CGI to learn how to extract $ENV in CGI without a lot of hand-coded parsing. You will save yourself (or whoever maintains this next) a lot of future headaches and worries.
As to your specific question, I suggest re-reading
perlfunc::my and
perlfunc::local. And here is an offsite link to a great article called, "
Coping with Scoping" that has a great walkthrough on this topic.
Added: If you aren't being paid to do this, then you owe it to yourself to get in the habit of using modules. I wish I had done so a LOT sooner. The CGI module in particular is very good for a gradual introduction to working with larger modules, since it is not an all or nothing type of module. You can easily start with query string parsing and then work up from there.