$w1 = open(fw1,"pgm1|"); $w2 = open(fw2,"pgm2|"); $read_set = new IO::Select(); $read_set->add($w1); $read_set->add($w2); while (1) { ; my ($rh_set) = IO::Select->select($read_set, undef, undef, 2); print $rh_set; foreach $rh (@$rh_set) { ...DoSomething... } }