On Wed, Sep 11, 2002 at 12:17:55PM -0400, Chad Kellerman wrote:
> my @list = "bla, bla, bla, bla, bla";

You probably meant @list = ("bla", "bla", "bla", "bla", "bla");


> foreach my $item(@list) {
>         my $pid;
>         FORK: {
>             if ($pid=fork) {
>                    print"$pid\n";
>             }elsif (defined $pid){
>              #do other perl stuff to $item
>             exit 0;
>             } elsif ($! =~/No more process/) {
>             sleep 5;
>             redo FORK;
>             }
>        } 
> }
> 
>    What I want to do, is have the fork, process $item before it goes
> onto the next $item.  But as it is written it forks every $item in the
> @list.
> 
>    Just fork, finish, repeat until all $item are done.

What is the point of forking if you're waiting for the sub-process to
complete before continuing on?

The solution, of course, is to wait, see perldoc -f wait and perldoc -f
waitpid.  Another solution is to remove the fork altogether, and simply
process the item in the parent.

 
Michael
--
Administrator                      www.shoebox.net
Programmer, System Administrator   www.gallanttech.com
--

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to