package main; $main::VERSION = (q$Revision: 1.7 $ =~ /(\d+)/g)[0]; use strict; use warnings; my @children; foreach my $fork_id ( qw( odin:3 dva:5 tri:7 chetyre:9 pyat:11 ) ) { my $pid = fork(); if ($pid) { # parent push(@children, $pid . q(:) . $fork_id); } elsif ($pid == 0) { # child my ($fork_name, $sleep_time) = split(/:/, $fork_id); my $total_time = 100; my $run_time = 0; while ( $run_time < $total_time ) { sleep $sleep_time; print qq(Unga! $fork_id/$$, slept for $sleep_time, $run_time\n); $run_time += $sleep_time; } # while ( $run_time < $total_time ) exit 0; } # if ($pid) } # foreach my $fork_name foreach ( @children ) { my $pid = (split(/:/, $_))[0]; waitpid($pid, 0); } # foreach ( @children )