C:\>type cat.pl $|++; print while <>; C:\>type ipc.pl use strict; use IPC::Open2; $|++; my $EOF = chr(0x1a); # inline use "\x1a" my $perl = "H:\\perl\\bin\\perl.exe"; my $cat = "C:\\cat.pl"; my $data = "first line\nsecond line"; my $pid = open2(my $rdr, my $wtr, $perl, $cat ); print "Sending:\n$data\n----\n"; print $wtr $data .$EOF; print "Going for read!\n"; print while <$rdr>; C:\>perl ipc.pl Sending: first line second line ---- Going for read! first line second line C:\>