이
에게 이미 두 답변 misundestand 질문을 플러시 나에게 점을 수 있도록 : 단어를 '여기
은 당신이 찾고있는 것을 않는 일부 코드입니다 맥락에서 플러시 (flush)는 버퍼 된 출력을 강제로 출력하는 것을 의미합니다. 그것에 대해 무엇인지 이해하기 위해, 60 초 동안 다음 60 개 문자 A를 더 출력을 얻을 것이다, 당신이 예상 할 수 것과는 달리
for(1..60) {
print "a";
sleep(1);
}
print "\n";
같은 STH를보십시오.이는 perl이 stdout 출력을 버퍼링하고 줄 바꿈, 파일 닫기 또는 버퍼가 꽉 찬 경우에만 전송하기 때문입니다. 그리고 실제로이 버퍼를 보내는 동작을 플러시라고합니다.
$ | = 1 ($ |은 AUTOFLUSH라고도하며 실제로 인쇄 할 때마다 "표준 출력 버퍼를 비우십시오"라는 의미입니다.) 위에서 설명한 것처럼 동작이 변경되지만 실제 문제는 아닙니다. 너는 가지고있다. 화면 지우기
는 일반적으로
출력을 취소 할 수있는 방법이 없습니다. 이 일이 당신이 어떤 somefile.txt에 착륙 것보다 특히, 당신은
perl myscript.pl > somefile.txt
및 인쇄 무언가 같이 파일에 스크립트를 리디렉션합니다.
출력이 화면이나 콘솔 인 경우 다양한 방법이 있지만 콘솔 종류에 따라 다릅니다. 많은 경우 TLP가 제안한대로 보내면됩니다. 다른 경우에는 터미널 제어 코드 (curses 라이브러리로 싸여 있음)를 사용할 수 있습니다.
그러나 내가 이미 언급 한 (파일로 출력 할 때) 또는 부적합한 콘솔을 사용할 때도 도움이되지 않는 경우도 있습니다 (빈번한 경우는 일부 텍스트에서 스크립트를 실행 중입니다). 편집기 또는 IDE).
그래서
, 요약하기 : 당신이 정말로 출력을 역 추적해야하는 경우
[어떻게 플러시 파일을 펄에서?] (http://stackoverflow.com/questions/4538767/how-flush-file-in-perl) –
@ J-16SDiZ 그는 " 버퍼 ", 그는"화면을 지우다 "를 의미합니다. – TLP
화면에 즉시 인쇄되는 버퍼를 의미하므로 "플러시"를 의미하지는 않습니다. 이미 인쇄 된 것을 제거하는 방법을 찾고 있습니다. – Nick