#!/usr/bin/perl # http://perlmonks.org/?node_id=1206479 use strict; use warnings; pipe (my $reader, my $writer); $writer->autoflush(1); my $parent=$$; print "parent: $parent\n"; for (0..2) # Forking children { defined fork or die "Cant fork: $!"; } if($$ == $parent) # Master process { close $writer; print "parent $$\n"; while (1) { my $line = <$reader>; print "<<<<<<<<<<<<<<<<<<< $line"; } } else # Fork process { close $reader; while(1) { print "\tchild ", $$ - $parent, "\n"; print $writer $$ - $parent, "\n"; sleep 1; } exit 0; }