in reply to Re: Child process reading <STDIN> from parent
in thread Child process reading <STDIN> from parent

My parent program launches the child like below:

parent.pl

=========

..... launch_chld{ my $cmd = "val_report.pl killall"; my $h = IO::Handle->new; die "IO::Handle->new failed." unless defined $h; open $h, $cmd . ' 2>&1 |'; $h->autoflush(1); }
********************************************

val_report.pl

=========

.... ... process_args{ if(XYZ){ print "Do you really want XYZ. <YES> or <NO>"; die "Cant proceed as confirmation is NO" if(<> ne 'YES'); } }
****************************************

Now process args will expect a input from user which in this case is parent.pl.

The question is how do i pass a "YES" or "NO" to process_args?

Replies are listed 'Best First'.
Re^3: Child process reading <STDIN> from parent
by Eily (Monsignor) on Oct 15, 2013 at 15:40 UTC

    If I understand correctly the problem is not just that you're trying to read from STDOUT or write in STDIN of another process, it's that you're trying to do both at once.

    perlopentut still gives you the answer on that one: it redirects to the perlipc documentation on bidirectionnal communication with another process. This seems quite simple, all you have to think about is disable buffering on both sides.

Re^3: Child process reading <STDIN> from parent
by rjohn1 (Sexton) on Oct 15, 2013 at 07:59 UTC

    Just to add the $cmd also does o/p to stdout which i want to process which i capture via Tk::fileevent