2011-10-18 61 views
0

我有這段代碼,基本上尾巴的文件。 該文件每秒填充近100個條目。退出拖尾文件 - 在perl

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); 

} 

所有這一切工作正常,但我希望在文件output.txt是沒有得到填充任何進一步的這個perl腳本會自動退出。

除了使用標記技術之外,還有一種方法嗎?由perl做出的規定?

回答

1

Perl中沒有內容,我知道。您可以檢查文件大小(使用tell),記錄文件大小更改的時間,如果自上次更改以來已經過了很多時間,請退出。

+0

我不知道'tell'函數,有人可以給我看一個示例嗎? – Amey

+0

'$ current_position_in_bytes = tell FILEHANDLE' – mob

+0

@perlnewbie - 只是爲了增加暴徒說的話 - 如果你在查找文件結尾後使用tell,告訴你文件的大小(至少在尋求完成)。 –