There is a possibility that there is a lull in the stream of messages and your script reaches the end of the file per se. I know there is a module for this, but I just needed a quick script which would tail log files and then switch over to the new file when they rolled over(these logs were rolling over every 10-15 minutes), I removed the superfluous code to just demonstrate how to do the tail portion effectively:
#Poor man's tail -f in perl
open (FILE, shift) or die " Couldn't open your file.";
while(1)
{
my $line=<FILE>;
unless (defined($line))
{
sleep 1;
next;
}
# Do stuff when you actually get data
}
|