$ echo 123123 | wr2
123123
####
#!/usr/bin/perl
use warnings;
use strict;
use IPC::Run qw(start pump finish timeout);
#my @cat = qw(/bin/cat);
my @cat = qw(/home/cwood/bin/wr2);
my ($in, $out, $err);
my $h = start \@cat, \$in, \$out, \$err, timeout(10);
$in .= "some input\n";
pump $h until $out =~ /input\n/g;
$in .= "some more input\n";
pump $h until $out =~ /\G.*more input\n/;
$in .= "some final input\n";
finish $h or die "cat returned $?";
warn $err if $err;
print $out; ## All of cat's output
####
#!/usr/bin/perl
use warnings;
use strict;
while () {
print;
}