my $alertsthr = threads->new(\&al_thread); $SIG{'INT'} = 'CLEANUP'; sub CLEANUP { print "\nClosing pipe\n"; close PIPE; exit(); } sub al_thread { my $myline; while (1) # keep reading from the pipe until we're killed { print "$config->{FIFO} open\n" if $config->{VERBOSE}; open (PIPE, "$config->{FIFO}") or die "Could not open the input +pipe $config->{FIFO}\n"; while($myline = ) { print "read $myline\n" if $config->{VERBOSE}; process_message($myline); } print "$config->{FIFO} EOF\n" if $config->{VERBOSE}; } }