use File::Tail; my $cur_filename $SIG{'INT'} = sub { if (-e ($cur_filename = "/tmp/filename")) { $NEWFILE = 1 } else { die "Cannot open file:$!" } }; $cur_filename=$ARGV[0]; while (1) { my $file=File::Tail->new(name => $cur_filename, maxinterval => 3, adjustafter => 2, tail => -1); while (defined($line=$file->read)) { print $line; last if $NEWFILE; } $NEWFILE = 0 }