sub system_no_output { my $mode = shift; open(my $chld_in, '<&', *STDIN) or die($!); my $chld_out = '>&STDOUT'; my $chld_err = '>&STDERR'; open($chld_out=undef, '>', devnull()) or die($!) if $mode & 1; open($chld_err=undef, '>', devnull()) or die($!) if $mode & 2; my $pid = open3($chld_in, $chld_out, $chld_err, @_) or die($!); return waitpid($pid, 0); }