>Yes. Right. Your CGI wrapper will get the input from STDIN but there is >no reason why it can't call a child program with commad line argument. >"@ARGV" in my code was actually argument passed to the child process. If >you are calling the "exec" from a CGI wrapper then @ARGV will be >undefined. You need to set these arguments and called the child program >with the command line params. > >Malay To 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) Fred.