... my $from_parent_one; my $to_child_one; my $from_child_one; my $to_parent_one; my $from_parent_two; my $to_child_two; my $from_child_two; my $to_parent_two; my @pipe_handles = ( $from_parent_one, $to_child_one, $from_child_one, $to_parent_one, $from_parent_two, $to_child_two, $from_child_two, $to_parent_two ); ... START: while ( 1 ) { ... # To be sure possibly remaining open pipe handles # are close before creating new ones # foreach my $handle ( @pipe_handles ) { close( $handle ) if defined openhandle( $handle ); } ...