First CGI.pm and CGI::Simple *do* maintain the supplied order of params when you iterate over the list so the simple answer is yes.

However you can't depend on the order the params are passed in, there are/used to be some browser quirks. Next you can just get the original (or whatever is in your current object) query string using the query_string() method in CGI.pm. Your sample code is broken as CGI.pm will URL decode the param keys/values and if you want a valid query string you need to URL encode the keys and values again (as noted there is a method to handle all the details for you) Finally any app that depends on the supplied order is at best fragile, if not actually broken.

cheers

tachyon


In reply to Re: CGI.pm and QUERY_STRING by tachyon
in thread CGI.pm and QUERY_STRING by powerhouse

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.