Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I need to fork child process for each array element. I'm using below code :
#!/usr/bin/env perl my $pid; my @a = (1,2,3); for my $i (@a) { print "i -> $i \n"; $pid = fork(); if ( $pid ) { # parent print " child pid : $pid \n"; } elsif ( $pid == 0) { #child #print "child working on $i "; } } while((wait()) > 0) {}; exit
but executing the code results in child processes more than the no. of elements in array. I don't know what's the problem. Output look like : i -> 1 child pid : 12629 i -> 2 i -> 2 child pid : 12631 i -> 3 child pid : 12630 i -> 3 child pid : 12632 i -> 3 child pid : 12633 i -> 3 child pid : 12634 child pid : 12635
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: fork child process
by Corion (Patriarch) on Apr 14, 2015 at 08:23 UTC | |
|
Re: fork child process
by hippo (Archbishop) on Apr 14, 2015 at 08:22 UTC | |
|
Re: fork child process
by jeffa (Bishop) on Apr 14, 2015 at 16:44 UTC |