#!/usr/local/bin/perluse strict;use warnings;print "Starting main program\n";my @childs;for ( my $count = 1; $count <= 10; $count++) { my $pid = fork(); if ($pid) { # parent #print "pid is $pid, parent $$\n"; push(@childs, $pid); } elsif ($pid == 0) { # child sub1($count); exit 0; } else { die "couldnt fork: $!\n"; }}foreach (@childs) { my $tmp = waitpid($_, 0); print "done with pid $tmp\n";}print "End of main program\n";sub sub1 { my $num = shift; print "started child process for $num\n"; sleep $num; print "done with child process for $num\n"; return $num;} |
