#!/usr/bin/perl -w use Time::HiRes; $SIG{"ALRM"}=\&sigAlarm; my $interval=1; my $uInterval=$interval*10**6; Time::HiRes::ualarm($uInterval, $uInterval); my $logname='xyz'; open TAIL, "tail -f $logname|" or die "couldn't open $logname"; while (1) { while(1) { if (eof(TAIL)) { printf "EOF: %d\n", eof(TAIL); $line=; next; } last if !($line=); print $line; } print "Fell through...\n"; } sub sigAlarm { print "alarm\n"; }