#!/usr/bin/perl # https://perlmonks.org/?node_id=11105742 use strict; use warnings; use Forking::Amazing; my @data = ( 10,4,20,2,15,6 ); Forking::Amazing::run 2, sub # in child { my ($slotnow, $n) = @{ shift() }; print "started $slotnow sleep($n)\n"; [ sleep $n ]; }, sub # in parent { my ($slotnow, $n) = @{ shift() }; print " ended $slotnow - $n\n"; @data and push @Forking::Amazing::ids, [ $slotnow, shift @data ]; }, map [ $_, shift @data ], qw( one two );