2011-05-06 4 views
2

원격 iMac에 perl, v5.10.0 built for darwin-thread-multi-2level이 있습니다. 그리고 출력을 할 때마다 일부 데이터를 정리하고 플러시하는 일부 펄 스크립트를 실행하고 싶습니다.Mac에서 perl 파일을 플러시하는 방법은 무엇입니까?

  1. $ file_handle-> flush();
  2. autoflush $ file_handle;

나는이 두 가지 버전을 파일 상단에 use IO::Handle;으로 시도했지만 결과는 Can't locate object method "autoflush" via package "FileHandle"입니다.

+0

당신이 $ file_handle-을 의미 않았다>의 autoflush 패키지 파일 핸들을 통해 차단하는 객체 메소드를 찾을 -can't 패키지 파일 핸들
를 통해 객체 메소드의 autoflush의 위치를 ​​-can't(); ? 또는 어쩌면 당신은 그것을 시도해야합니다. 비록 웃음 소리 만 들어도, 나는 1의 명시적인 인수를 건네 주겠다. 왜냐하면 그것이 호출 될 때 true로 기본 설정되어 있다고하더라도 ... –

답변

2

"IO :: Handle 사용;" 오타가 없다 고요?

모듈이로드되지 않은 것처럼 보입니다.

+0

네가 동일한 코드를 3 개의 다른 박스에서 실행하기 때문에 네. Mac, Linux, Win –

+0

자동 플러시하기 직전에이 프로그램을 삭제하고 출력을 줄 수 있습니까? 'print map { "$ _ => $ INC {$ _} \ n"} 키 % INC; –

3

어디에서 $file_handle을 받고 있습니까? 이미지가 FileHandle 인 것처럼 보입니다. IO::Handle 개체가 아닙니다.

대신 IO::Handle의 스크립트의 상단에

use FileHandle; 

을 시도 할 수 있습니다. 또는 $file_handle이 더 이상 FileHandle 인스턴스가 아니도록 코드를 변경하십시오.

추신 : 정말 5.10.0을 실행하면 안됩니다. 버그가 있습니다. 5.10.1 또는 더 새로운 것이 훨씬 낫습니다.

2

사용 FileHandle; 내 문제를 해결했다. Net :: SCP :: Expect에 문제가있었습니다. 이것은 CentOS 6.3에서 발생했습니다. 같은

내가지고 있다고 오류 :

관련 문제