in reply to Re^6: Problem with CGI::Vars
in thread Problem with CGI::Vars

At least CGI v3.35 has this code, which is different from the code you show:

if ($meth eq 'POST' || $meth eq 'PUT') { if ( $content_length > 0 ) { $self->read_from_client(\$query_string,$content_length,0); } elsif (not defined $ENV{CONTENT_LENGTH}) { $self->read_from_stdin(\$query_string); # should this be PUTDATA in case of PUT ? my($param) = $meth . 'DATA' ; $self->add_parameter($param) ; push (@{$self->{param}{$param}},$query_string); undef $query_string ; } # Some people want to have their cake and eat it too! # Uncomment this line to have the contents of the query string # APPENDED to the POST data. # $query_string .= (length($query_string) ? '&' : '') . $ENV{'QU +ERY_STRING'} if defined $ENV{'QUERY_STRING'}; last METHOD; }

If you're using an old version of CGI.pm it makes little sense to complain about bugs in the old version when a newer version which is different is available.

Replies are listed 'Best First'.
Re^8: Problem with CGI::Vars
by Chipper (Initiate) on Jun 07, 2011 at 20:25 UTC
    OK it is different, but also there is only one read_from_client call!!! If read_from_client function doesn't read whole input, then problem is not solved too...

      The error would only be there if $content_length is wrong.

      So far, you haven't shown code that reproduces the problem. Please show code that reproduces the problem - all other diagnosis will remain vague guesswork.

        As I said, $content_length is correct, it is corresponding the value which I get by wireshark. Ok Soon I paste here the code...