Much easier as "forked open"
#!/usr/bin/perl
# http://perlmonks.org/?node_id=1148787
use strict;
use warnings;
my $total = 0.0;
my @waitlist = qw(0 200 400 800 1000);
my @fhs;
foreach my $item (@waitlist)
{
if( open my $fh, '-|' )
{
push @fhs, $fh;
}
else
{
my $h = 1.0 / 1200.0;
my $sum = 0.0;
for my $i ($item .. $item + 200 )
{
my $x = $h * ($i - 0.5);
$sum += 4.0 / (1.0 + $x*$x);
}
my $ret=$sum * $h;
print $ret;
#warn "$item exiting\n";
exit;
}
}
for my $fh ( @fhs )
{
$total += (<$fh> + 0.0);
print "$total\n";
close $fh;
}
print " $total\n";
print "All done!\n";