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


in reply to Capturing both STDERR and STDOUT without shell redirect

While there might be better ways to do it, the way I found is as follows:

At the start of the script redirect STDOUT and STDERR to a file. Make sure that the program you call is set to print it's output to STDOUT. Then when Perl executes the program, the output is captured into the file. This works on Unix and Windows (we run on both systems). Look in the Camel book for how to redirect STDOUT and STDERR.