http://qs321.pair.com?node_id=2153

vroom has asked for the wisdom of the Perl Monks concerning the following question: (programs and processes)

How do I run another program from within my Perl program

Originally posted as a Categorized Question.

  • Comment on How do I run another program from within my Perl program

Replies are listed 'Best First'.
Re: How do I run another program from within my Perl program
by Anonymous Monk on Jun 29, 2000 at 21:36 UTC
    You can also use exec(), or the open or open2 methods of IPC::Open2, or even open3 of IPC::Open3 if you want finer control of input and output.

    exec will start the other program, terminating your perl program.

    open lets you either read or write from/to the process.

    open2 lets you do both, but isn't very portable.

    open3 lets you read from both STDOUT and STDERR, and write to STDIN, but it can get ugly trying to read both outputs. It also has the portability problems of open2.

Re: How do I run another program from within my Perl program
by vroom (His Eminence) on Jan 18, 2000 at 23:56 UTC
    use the system function or backticks(`) if you want to collect the output;
    system "update"; my $datestr=`date`; print "Date output: $datestr\n";
A reply falls below the community's threshold of quality. You may see it by logging in.