use strict; use warnings; use IPC::Open2; $|=1; # this is for main program # $writer is alread unbuffered by open2 my $pid = open2(my $reader, my $writer, "perl echo2.pl"); print "pid=$pid\n"; for ( qw(first second third) ) { print $writer "$_\n"; # one line in, one line out my $result = <$reader>; print $result; } =heading #### echo2.pl ##### #!/usr/bin/perl -w use strict; $|=1; while (my $in=){print $in;} print STDERR "out of loop\n"; #never gets here! =cut #### echo2.pl ##### __END__ C:\TEMP>perl ipc_open2.pl pid=3244 first second third