Problem is that this works fine exactly the way it is. I'm trying it in a windows xp professional machine with ActivePerl. But when I'm kicking off the command(xcopy, etc.) from a sub which is called from another sub, which in turn is called from another sub, $stdout comes up as an empty string. I'm echoing the values from the sub where the process is kicked off to get around issues related to scope of variables. I'm baffled by this. Does anybody know the answer to this weird behaviour. Will really appreciate it.use IO::CaptureOutput qw/capture/; $cmd = "xcopy /Y /S /E /I /F /R /K $source $dest"; capture { system $cmd } \$stdout, \$stderr; print "Output is : "."\n"."$stdout\n"; print "Error is : "."\n"."$stderr\n"; print "Exit code is : "."\n"."$?\n";
In reply to get stdout stderr by krosty
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |