#!/usr/bin/perl -w use strict; use File::Find; use File::Copy; use Time::Local; use IPC::Open3; my $log="TestOpen3.log"; open FHO, ">$log"; select FHO; &executeCmd("dir * \/b\/s"); close FHO; exit; sub executeCmd{ my ($cmd) = @_; print "Execute Command: $cmd\n"; use Symbol 'gensym'; my $rdr = gensym; my $pid = open3($rdr, \*POut, \*PErr, $cmd); waitpid( $pid, 0 ); if((my $returnCode = $? >> 8) !=0){ print "[ERROR] ($returnCode) : "; while() { print; } close PErr; die $returnCode; } while() { print "\t".$_; } close POut; }