$w1 = open(fw1,"pgm1|"); ... $read_set->add($w1); #### my $pid1 = open my $fh1, "pgm1|"; my $pid2 = open my $fh2, "pgm2|"; my $read_set = new IO::Select(); $read_set->add($fh1); $read_set->add($fh2); ... #### close $fh1 or warn "subprocess failed: status=$?\n";