I thought I understood this but maybe I don't. 
  When perl forks it creates an exact copy of itself with open files, same 
variables,
  hashes, arrays, etc.
   
  But when a variable in one changes, do they all change?
   
  What's wrong with how I'm trying to use the $children variable to track 
whether or
  not I still have processes running?
   
  #!/usr/local/bin/perl
   
  use strict;
  use warnings;
   
  my $pid;
  my $children = 0;
   
  my @args = (
      "arg1",
      "arg2",
      "arg3",
      "arg4",
  );
   
  foreach my $arg ( @args ) {
      if ( $pid = fork() ) {
          #parent
          #do nothing yet
      } else {
          #child
          $children++;
          system("my_command -a $arg");
          $children--;
          exit;
      }
  } # end foreach
   
  # didn't let children fall through, so this is in the parent process
  # this is where I do lots of stuff waiting for $children to equal zero
   
  while ( $children ) {
      # gather some data from "ps" and parsing log files, etc...
  }
   
  #end of script
   
  Thanks in advance for any insights,
  Travis.
   
   
   
   

                
---------------------------------
Do you Yahoo!?
 Next-gen email? Have it all with the  all-new Yahoo! Mail Beta.

Reply via email to