in reply to Influencing control flow using a signal handler

Hello Bloehdian,

This isn’t an answer to your question, just something I noticed while looking at your code:

... 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 ); } ...

You initialise the array @pipe_handles with the contents of the variables $from_parent_one, $to_child_one, etc. Since these variables have themselves not yet been initialised, @pipe_handles contains (undef, undef, undef, undef, undef, undef, undef, undef) — and is never updated. I assume you intended to store variable references?

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 ); ... foreach my $handle ( @pipe_handles ) { close( $$handle ) if defined openhandle( $$handle ); }

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,