#!/usr/bin/perl use strict; use warnings; sub TimerHandler() { debug ("In the handler"); } debug ('BEGIN - MAIN'); my $Command = qq(echo 'Hallo, sleeping for 120 seconds ...'; sleep 120 2>&1); open (COMMAND, '-|', $Command); $SIG{ALRM} = sub { die("TimerTriggerStatus\n"); }; while () { eval { alarm(10); debug ("timer set to 10 seconds"); chomp; debug ("CommandLine received:\n$_"); }; if ( $@ eq "TimerTriggerStatus\n" ) { debug ("timer triggered"); TimerHandler (); }; } close (COMMAND); debug ('END - MAIN'); sub debug { printf "%s : %s - %s\n", scalar localtime(), (caller(1))[3], shift; }