#!/usr/bin/perl use strict; use warnings; use Getopt::Long; use Parallel::ForkManager; use Benchmark; use File::Basename; my $thisScript = basename($0); my ($infile,$scriptName); sub usage { print <", \&usage) ); if (exists($optctl{"infile"}) && exists($optctl{"script"})) { $infile = $optctl{"infile"}; $script = $optctl{"script"}; } else { exit usage; } # Use for Expect debugging open INPUT,"<$infile" or die "Could not open input ($!)\n"; my @input=; close INPUT; my $start = new Benchmark; my ($pm,$masterList); my $maxProbes = 80; # set this to one to do one at a time $pm = new Parallel::ForkManager($maxProbes); foreach my $line (@input) { chomp $line; $pm->start and next; my $stdout = `$script \"$line\"`; chomp $stdout; print "$stdout\n"; $pm->finish; } $pm->wait_all_children; my $end = new Benchmark; my $diff = timediff($end,$start); print "Time taken was ", timestr($diff, 'all'), " seconds\n";