my surprise @ARGV is empty even before using the CGI wrapper, though my > command gets the data through STDIN. > It works like the original bash script: exec "./blast.REAL" or die ".."; > with your syntax ("./blast.REAL", @ARGV), it works as well but the argument > is simply discarded since it's empty. Until now, I thought that everything > that was transmitted as invocation arguments when calling a perl script in > command line was available either through STDIN or @ARGV. Apparently with a > CGI script, it doesn't work that way...? > > Whenever I start reading from STDIN or using the CGI wrapper before the > execution of my command (adn I need to do it to get username and set BLASTDB > env), then the command doesn't receive the data anymore. If I store the data > in a variable and use it as an argument in the command, it doesn't work > either. If I write the same variable to a file, and use with STDIN redirect > to the command, then it works: > > exec "./blast.REAL < /tmp/formdata" or die ".. > > Could it be just a syntax problem in exec, the arguments are simply not > read? > > I've tried to following with no success: > > exec "./blast.REAL", @formdata or die ".. > exec ("./blast.REAL", @formdata) or die ".. > exec "blast.REAL @formdata" or die ".. > (same with a scalar) Strange indeed. Calling exec with list [exec ("./blast.REAL", @formdata) or die "..] should work fine. I am not sure what's going on. Did you try opening "./blast.REAL" as pipe. I am completely unaware of any other behaviour. This is the first time I came to know such problem. Let me try to check it. I'll get back to you as soon as I can. Malay