use IPC::Run qw( run ); run( [ cmd => '/c', 'dir' ], '>', \my $out, '>', \my $err, ) or die "dir: $?" print "OUT: $out ERR: $err";