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


in reply to get stdout stderr

I used to use IPC::Open3 for this type of thing. Now I use AnyEvent::Util::run_cmd:

use AnyEvent; use AnyEvent::Util; use File::Spec; my ($stdout, $stderr) = ('', ''); # I think these need to be empty str +ings, not undefs my $pid; my $cv = AnyEvent::Util::run_cmd [ qw(xcopy /Y /S /E /I /F /R /K), $so +urce, $dest ], '<' => File::Spec->devnull(), '>' => \$stdout, '2>' => \$stderr, '$$' => \$pid, # this line is optional, you may not need it. ; my $rc = $cv->recv();
(You can even run more than one of these at a time if you want, with a little extra code.)