use IPC::Open3 ; my $cmd = "$^X foo.pl arg1" ; open3(LOGREAD , LOGERROR, LOGWRITE, "$cmd"); my @log = ( , ) ; close(LOGREAD , LOGERROR, LOGWRITE) ; print "@log\n" ;