$ 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; }