IPC::Open2を使ってデータのやり取りを繰り返したいのですが
どうもうまくいきません。

#------ test_pipe.pl
use IPC::Open2;

my ($WTR, $RDR);
my $pid = IPC::Open2::open2($RDR, $WTR, "./test_pipe2.pl");
while (<>) {
print $WTR $_;
my $line = <$RDR>;
print STDERR "$line";
}

#------ test_pipe2.pl
printf "%d\n", $_ + 10 while (<>);

データを送るたびにopenとcloseを繰り返すようにするとうまくいったのですが、
test_pipe2.plはいずれ起動に時間のかかるプログラムと入れ替えるので
一度だけのopenで済ませたいです。
どうすれば良いのでしょうか。