http://www.perlmonks.org?node_id=529119

Angharad has asked for the wisdom of the Perl Monks concerning the following question:

Hi there
I'm trying to write a cgi script that will run a executable file (securely, with any luck). The executable itself is a bit tricky, because it needs a file (which I have uploaded onto the server) .. but I can't feed the program the file from the command line, I can only give it the name of the file once the program is running .. so normally, if I run the program from the command line i have to use a pipe.
This is what I have come up with so far. Any suggestions much appreciated.
#!/usr/bin/perl use CGI; # eventually the text file will be sent to this excutable via the uplo +ad script $file = 'http://www.mywebpage/uploaded_files/file.txt'; # path to program my $prog = 'http://www.mywebpage/cgi-bin/executableprog'; my $q = new CGI; my $pid = open PIPE, "-|"; die "Cannot fork $!" unless defined $pid; unless($pid) { exec PROG or die "Cannot open pipe to executableprog: $!"; print PROG "$file\n"; close PROG; }
This code should result in a text file being created. I guess I have to determine where that will be placed on the server too? I have only just started playing with cgi and would appreciate any advice thrown my way. Thanks a lot.