2012-02-11 1 views
2

굵게 표시된 hi!STDERR에 인쇄하고 싶습니다. Term::Screen으로 가능합니까?Term :: Screen을 사용하여 STDERR로 어떻게 인쇄 할 수 있습니까?

#!/usr/bin/env perl 
use warnings; 
use 5.12.0; 
use utf8; 
binmode STDOUT, ':utf8'; 
binmode STDERR, ':utf8'; 
use Term::Screen; 

my $scr = new Term::Screen; 
unless ($scr) { die " Something's wrong \n"; } 
$scr->clrscr(); 
$scr->at(5,10)->bold()->puts("hi!")->normal(); 
$scr->at(11,0); 
+0

당신이 그 유용 할 것이 무엇인지 설명 할 수는 소스에, 호출 sub at{}이있다 ? 네가 그걸로하고 싶은 걸 보면서 힘든 시간을 보내고있다. – Mat

+0

나는 이것을 (IO :: Interactive' 문서에서)하고 싶습니다 : "대화식으로 쓰기 가능한 파일 핸들을 전달할 수 있습니다.이 경우 파일 핸들이 터미널에 연결되어 있으면 파일 핸들에 쓰게됩니다 (대신에 writinbg가 아닌). * STDOUT). 다시 한번, 일반적인 용의자는 * STDERR : " –

답변

4

기간 : 화면, 소스보고, *STDOUT

일예에 쓸 하드 코드

따라서 $this->term()->Tgoto('cm', $c, $r, *STDOUT);

, 당신은 명시 적으로 STDERR에 STDOUT의 모든 리디렉션해야합니다 :

open(my $backup_stdout, ">&STDOUT"); 
close(STDOUT); 
open(STDOUT, ">&STDERR"); # This affects ALL of spawned child processes! 
# *STDOUT = *STDERR; # This does the same but ONLY affects your process