Выход из хвостового файла - В 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
), запишите время изменения размера файла и выйдите, если прошло слишком много времени с момента последнего изменения.