2012-11-08 9 views
0

필자는이 프래 그램을 사용하여 윈도우에서 수행중인 작업을 완료하는 데 몇 시간 정도 기다려야합니다. Windows 작업이 끝나면 Linux 스크립트가 Windows가 완료되었음을 알 수 있도록 텍스트 파일의 문자열을 업데이트합니다. 그것을 실행 중에 닫힌 파일 핸들에 대한 readline

는이 오류를 얻을 : 닫힌 파일 핸들에 작성한 Readline을 (를)

인 서브

my $numberOfChecks = 28; 
my $sleepTime = 900; 
my $communicationsFile = "/home/user/ICAhome/Win_To_Linux_ComFile.txt"; 
my $winBuild = "1"; 

sub waitForWindowsBuild { 
    while ($numberOfChecks-- $$ $winBuild == "1"){ 
     open (MYFILE, $communicationsFile); 

     while (<MYFILE>){ 
      chomp; 
      if ($_ eq $buildValue){ 
       $winBuild="1"; 
      } 

      sleep($sleepTime); 
     } 

     close(MYFILE); 
    } 
} 

사람이 무슨 일인지 말씀해 주시겠습니까?

감사합니다.

답변

1

open이 성공하는지 확인하십시오. 예 :

open (MYFILE, $communicationsFile) 
    or die("Can't open $communicationsFile: $!\n"); 
+0

감사합니다. 나는 그것을 추가 할 것이다. 20 번 파일을 열고이 오류를 매번 시도하면 서버가 다운 될 가능성이 있습니까? – user1758367

+0

"충돌"이 모호합니다. '죽다'라는 말은 스크립트를 종료합니다. '죽는 것'이외의 것을 자유롭게 할 수 있습니다. – ikegami

+0

나는 지난 밤에 죽지 않고 도망 쳤고, 오늘 아침에 돌아 왔을 때 서버가 다운되었고 프로그램에서 20 개 정도의 오류를주었습니다. – user1758367