Выход из хвостового файла - В Perl

У меня есть этот кусок кода, который в основном хвост файла. Этот файл заполняется почти 100 записями каждую секунду.

open (MYFILE, 'output.txt');
for (;;)
{
    while (<MYFILE>)
    {
        chomp;
        my $test=$_;
        if  ($test =~ m/^ok/)
        {
            $passed++;
            print "Number of passed :$passed\n";
            print "Number of failed :$failed\n";
        }
        elsif ($test =~ m/^not/)
        {
            $failed++;
            print "Number of passed :$passed\n";
            print "Number of failed :$failed\n";
        }
        elsif ($test =~ m/^The time taken is: (.*)/)
        { push (@array, "$1") ; }
        $row++;

    }
sleep (5);
print "It has been ".(time - $time)."seconds\n";
seek(MYFILE, 0, 1);

}

Все это прекрасно работает, но я хочу, чтобы этот скрипт на Perl автоматически завершал работу, когда файл output.txt не заселяется дальше.

Есть ли способ помимо использования техники флагов? Положение, сделанное Perl?

1 ответ

Решение

Там нет ничего встроенного в Perl, о котором я знаю. Вы можете проверить размер файла (используя tell), запишите время изменения размера файла и выйдите, если прошло слишком много времени с момента последнего изменения.

Другие вопросы по тегам