IPC::Open3 works like IPC::Open2.
use IPC::Open3;
$pid = open3($wtr, $rdr, $err, $cmd_with_args);
$pid = open3($wtr, $rdr, $err, $cmd, "
arg1
", "
arg2
", ...);
The following differences apply:
-
The first two arguments (
$wtr
and
$rdr
) are passed in
the opposite order.
-
A third filehandle can be passed, for standard error. If this argument is
given as
""
, then STDERR and STDOUT for
$cmd
are on the same filehandle.
-
If
$wtr
begins with
<
, then the leading
<
is
stripped from the name and the remainder is assumed to be a regular filehandle
for an open file, rather than a reference to a typeglob.
open3
opens this file as STDIN for
$cmd
and closes it in the parent. Likewise, if
$rdr
or
$err
begins with
>
, then
$cmd
directs
STDOUT or STDERR directly to that file rather than to the parent.
|
|