in reply to Re^2: IIS 6 x64 CGI variable problem
in thread IIS 6 x64 CGI variable problem

> Are you recommending that maybe I not use this and instead hard code the form statment?

The forms that I was using weren't multipart/form-data - they were just plain old 'method="POST"' types - but as I recall, the data kept ending up being passed as GET rather than POST no matter what I did in 'start_form()'. I noticed that the default method used by CGI.pm was GET, decided to flip it to POST just so I could experiment a bit... and suddenly (and unexpectedly), everything worked fine. Again, this was for just that one server type ('thttpd', maybe? I really don't remember) - all the others worked fine both before and after the change.

As I'd mentioned, I'm not a fan of "magical" solutions where I don't understand the mechanism - hate'em, in fact, since they don't teach me how to solve that class of problems, only that one problem (and even that's a "maybe") - but A) it worked for me, and B) maybe someone here will have better insight/knowledge about the "why" of it.

> what does $|++ do?

From perlvar:

$| If set to nonzero, forces a flush right away and after eve +ry write or print on the currently selected output channel.

I generally turn buffering off whenever I have Perl talking to an external program - e.g., a web server or a database client, or any kind of a pipe. It prevents a host of related timing problems.


-- 
Education is not the filling of a pail, but the lighting of a fire.
 -- W. B. Yeats

Replies are listed 'Best First'.
Re^4: IIS 6 x64 CGI variable problem
by Anonymous Monk on Dec 26, 2010 at 01:34 UTC
    B) maybe someone here will have better insight/knowledge about the "why" of it.

    There is only one explanation, the server was not implementing CGI protocol correctly