in reply to parallel forkmanager and unexpected duplicates.

I'm no expert on Parallel::ForkManager, but the module author recommends this code structure:
use LWP::Simple; use Parallel::ForkManager; ... @links=( ["http://www.foo.bar/rulez.data","rulez_data.txt"], ["http://new.host/more_data.doc","more_data.doc"], ... ); ... # Max 30 processes for parallel download my $pm = new Parallel::ForkManager(30); foreach my $linkarray (@links) { $pm->start and next; # do the fork my ($link,$fn) = @$linkarray; warn "Cannot get $fn from $link" if getstore($link,$fn) != RC_OK; $pm->finish; # do the exit in the child process } $pm->wait_all_children;
with the declaration of a new object right before the for loop. Your code has it at the start of your program - perhaps this is causing the extraneous copies.

-Mark