my @keycards= qw(A B C); my @users = qw(peter james john luke andrew judas); ... foreach my $user (@users) { sleep(int(rand(3))); my $key = pop(@keycards); $pm->start and next; #### my $pm = Parallel::ForkManager->new(2); #### my $pm = Parallel::ForkManager->new(@keycards - 1);