in reply to •Re: Interesting CGI.pm query_string behavior
in thread Interesting CGI.pm query_string behavior

This behavior does seem consistent with how the rest of CGI.pm works.

For some reason I had it in my head that methods like query_string() and script_name() were just convenience methods for getting %ENV values, but this isn't the case. Fine with me, because this is a very nice feature. . .The docs were just a bit confusing as to what was actually returned from query_string().

Thanks.

-Any sufficiently advanced technology is
indistinguishable from doubletalk.

  • Comment on Re: •Re: Interesting CGI.pm query_string behavior

Replies are listed 'Best First'.
Re: Re: •Re: Interesting CGI.pm query_string behavior
by mfriedman (Monk) on Aug 13, 2002 at 19:10 UTC
    Indeed. It even becomes clearer when we look at the CGI.pm code. :)

    #### Method: query_string # Synthesize a query string from our current # parameters #### 'query_string' => <<'END_OF_FUNC', sub query_string { my($self) = self_or_default(@_); my($param,$value,@pairs); foreach $param ($self->param) { my($eparam) = escape($param); foreach $value ($self->param($param)) { $value = escape($value); push(@pairs,"$eparam=$value"); } } return join($USE_PARAM_SEMICOLONS ? ';' : '&',@pairs); }

    - from CGI.pm

    So it simply constructs a query string from the given name/value pairs already in the CGI object. It'll even use that far-out semicolon format if you want it to. :)