It doesn't help if you want to capture STDERR and STDOUT in separate scalars.
To answer gmarler's question: if you just want to capture STDERR and STDOUT for an external program then it is rather easy to do with IPC::Run:
use IPC::Run qw(run);
my($out, $err);
run ['/path/to/prog', 'arg1', 'arg2'], '>', \$out, '2>', \$err;
You can find more complex examples in following nodes:
--
Ilya Martynov, ilya@iponweb.net
CTO IPonWEB (UK) Ltd
Quality Perl Programming and Unix Support
UK managed @ offshore prices - http://www.iponweb.net
Personal website - http://martynov.org