Does any of this (truncated) look helpful? relevant?
C:\>perldoc -q stderr
Found in C:\Perl\lib\pods\perlfaq8.pod
How can I capture STDERR from an external command?
There are three basic ways of running external commands:
system $cmd; # using system()
$output = `$cmd`; # using backticks (``)
open (PIPE, "cmd |"); # using open()
With "system()", both STDOUT and STDERR will go the same place as
+the
script's STDOUT and STDERR, unless the "system()" command redirect
+s
them. Backticks and "open()" read only the STDOUT of your command.
You can also use the "open3()" function from "IPC::Open3". Benjami
+n
Goldberg provides some sample code:
To capture a program's STDOUT, but discard its STDERR:
use IPC::Open3;
use File::Spec;
use Symbol qw(gensym);
open(NULL, ">", File::Spec->devnull);
my $pid = open3(gensym, \*PH, ">&NULL", "cmd");
while( <PH> ) { }
waitpid($pid, 0);
To capture a program's STDERR, but discard its STDOUT:
use IPC::Open3;
use File::Spec;
use Symbol qw(gensym);
open(NULL, ">", File::Spec->devnull);
my $pid = open3(gensym, ">&NULL", \*PH, "cmd");
while( <PH> ) { }
|