Cooked Input



The associative array CookedInput represents a request from the client as any number of StandardKeys and their associated values. The server sends us as a string of key=value pairs separated by &s. First we restore spaces, which are encoded as +. (Hoisted out of the loop. --DaveSmith)
  $RawInput =~ s/\+/ /g;
Next we examine each pair in turn.
  foreach $_ (split(/&/, $RawInput)) {
And restore characters that are encoded as %hh (where hh is the hex value of the encoded character).
    s/\%(..)/pack(C, hex($1))/ge;
Now is a good time to blatantly discard any troublesome characters that we give meaning to elsewhere.
    s/$FieldSeparator//go;
We use here //o to save a bit of time. --VladimirAlexiev, just being Perly-anal. Now we can split the pair around the first = and store the value we get (if any) under its corresponding key. If there is no = then the key is set to true.
    ($_, $CookedInput) = split (/=/, $_, 2);
    $CookedInput{$_} = $CookedInput;
  }

 

Last edited February 10, 1998
Return to WelcomeVisitors