Briefly, your problem is that you are not using use strict. Of course, that is not very helpful by itself ...

I have to assume that you are repeating this section of code several times during the program. The line
if ($in{$name}) { $value = $in{$name} . ", " . $value; }
tells the script that if the $name already exists in the hash %in that it should concatenate the newly read value onto the existing value. However, after you have been through this section of code once, $in{NAME} has a value in it from the previous pass. If %in had been localized to the block with a my, then the previous use of %in would have disappeared when that block of code went out of context.

Now, this makes some presumptions regarding your code, such as that there is a contextual block of code around which the loop occurs. If there isn't, there probably should be.

By the way, it looks as if you are parsing a file that saved responses from a CGI request. If this is the case, you may want to spend some time with the CGI module, which has effective, safe, and easy methods by which to do this. Using it effectively, you may even find a way to save the CGI output in a file that will require a minimum of processing when you read it back in.

-HZ

In reply to Re: Parsing Query Strings in a file by HyperZonk
in thread Parsing Query Strings in a file by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.