use IPC::Open2 ; .... sub process { .. my $pid = open2( *Reader, *Writer, "some_prog" ); print Writer "$some_options" ; my @prog_out = ; close Writer; close Reader; .. return @output ; }