2011-10-18 3 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)이 만든 조항?

답변

1

제가 알고있는 Perl에는 아무것도 내장되어 있지 않습니다. 파일 크기 (tell 사용)를 확인하고 파일 크기가 변경된 시간을 기록한 다음 마지막 변경 이후 너무 많은 시간이 지나면 종료 할 수 있습니다.

+0

나는 'tell'함수를 알지 못한다. 누군가 샘플을 보여줄 수 있는가? – Amey

+0

'$ current_position_in_bytes = tell FILEHANDLE' – mob

+0

@perlnewbie - 단지 mob이 말한 것에 덧붙여서 - 파일 끝에 도달 한 후'tell '을 사용하면 파일 크기를 알 수 있습니다 (적어도 추구했다). –