#!/usr/bin/perl use strict; use warnings 'all'; my @kids; foreach my $count (0 .. 40) { my $pid = open $kids [$count] => "-|"; die "Failed to fork: $!" unless defined $pid; unless ($pid) { # Child. sleep rand 60; # Sleep for some random time. print "$$: ", int rand 0x7FFFFFFF, "\n"; exit; } } foreach my $fh (@kids) { my @lines = <$fh>; print "Got: @lines"; } 1 while -1 != wait;