in reply to Re: How to tell a child what to do?
in thread How to tell a child what to do?
You are surprisingly right,
I somehow always regarded
trick as a way to talk with only one child, but if we rewrite it like this:$pid = open(KID_TO_WRITE, "|-");
then we get to hold whole array of different $fd's, each for talking with one child. This would be clean and reliable, exactly what I wanted.$fh = new FileHandle; my $sleep_count = 0; do { $pid = open($fh, "|-"); unless (defined $pid) { warn "cannot fork: $!"; die "bailing out" if $sleep_count++ > 6; sleep 10; } } until defined $pid; my (@some_data)=qw[a be ce]; if ($pid) { print $fh @some_data; close($fh) || warn "kid exited $?"; } else { while (<STDIN>) { print "GOT: $_\n"; # child's STDIN is parent's KID } exit; # don't forget this };
Thanx.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^3: How to tell a child what to do?
by Eyck (Priest) on Sep 21, 2005 at 10:36 UTC | |
by Anonymous Monk on Sep 21, 2005 at 11:09 UTC | |
by Eyck (Priest) on Sep 21, 2005 at 11:26 UTC | |
by Anonymous Monk on Sep 21, 2005 at 12:25 UTC | |
by Eyck (Priest) on Sep 23, 2005 at 07:07 UTC |
In Section
Seekers of Perl Wisdom