in reply to IPC Help

I modified your first program (and called it one.pl) to:

#! /usr/bin/perl -w use strict; $|=1; print "Once\n"; sleep 2; print "Input Please?\n"; my $line = <STDIN>; chomp $line; print "You got: $line\n"; sleep 5; print "Twice\n"; exit 0;
Then I modified your second program to use IPC::Open2 to:
#! /usr/bin/perl -w use strict; use IPC::Open2; my $reader; my $writer; my $pid = open2 ($reader, $writer, './one.pl'); print scalar <$reader>; print scalar <$reader>; print $writer "Some input.\n"; print scalar <$reader>; print scalar <$reader>; close $reader; close $writer; exit 0;
It now does something like what you expected. Now, I believe you really should use Expect to do this kind of thing, which gives you nice control over the I/O of the first program, and the ability to handle errors, which this code does not.