use IPC::Open3 qw( open3 ); open(local *OUT_FH, '>>', '/Volumes/Expansion Drive/stuffTGZ/list_xxx_dirs.txt') or die $!; print(OUT_FH "-------------------------------------------------\n"); print(OUT_FH "- $File::Find::name -----------------------------\n"); # Gets closed by open3. open(local *CHILD_STDIN, '<', '/dev/null') or die $!; my $pid = open3( '<&CHILD_STDIN', '>&OUT_FH', '>&STDERR', "/bin/ls" => ( "-l", $File::Find::name ), ); waitpid($pid, 0);