If I understand you correctly, then you're middleware is attempting to translate a set of key/value pairs from the user into a URL which is passed to your third party app.

I'll assume that the user input is pre-processed into a hash, and so you need to

  1. Strip out keys that have no meaning to the app
  2. Regularise the hash to ensure that the keys have the right case
  3. Turn it into a URL
The following code does steps 1 and 2 in rapid succession:
my %input = ( "NaMe" => "Fred", "iD" => "123", "PET" => "Cat", "spoon" => "garbage", ); my %caseCorrection = ( "name" => "Name", "id" => "ID", "pet" => "pet", ); my %output; %output = map { $caseCorrection{lc $_} => $input{$_} } grep { exists $caseCorrection{lc $_} } keys %input; my $getString = join ";", map { "$_=$output{$_}" } keys %output;
The above doesn't handle: Depending on what else is going on before this point, these may be non-issues.

It now occurs to me that I've not used the CGI module anywhere. I hope I've been barking up the right tree...

--
.sig : File not found.


In reply to Re: CGI Design issues by wol
in thread CGI Design issues 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.