2012-08-12 4 views
0

Perl 코드를 작성한다. 나는 기간 : ANSIColor를 사용 할 수있어Ncurses가 Perl로 탈출하다

print color('red') . 'hello world'; 

그러나, 나는이 저주 라이브러리를 사용하고 있는데 내가 어떤 단어가 일부는 노란색, 빨간색에 레이블을 만들 싶습니다이 상황에서, 내가 조작 할 수있는 것은 문자열이며, 렌더링을 위해 라이브러리에 전달합니다. 내가

$string = color('red') . 'hello world' . color('yellow') . ' another word'; 

을 할 경우 나 인쇄를 위해 도서관에 $ 문자열을 통과 할 때 다음, 그것은 그대로 ANSI 이스케이프 시퀀스를 인쇄합니다. 제가하려는 일을 할 수있는 방법이 있습니까? 아니면 attron() 및 친구들과 함께 라벨 그리기를 수동으로 관리해야합니까? 사전에

감사합니다.

+0

문제를 보여주는 작은 전체 프로그램을 포함 할 수 있습니까? 나는 당신이 여기있는 것을 기반으로 그것을 복제 할 수 없다. –

답변

0

저는 기본적으로 ANSI 색상 코딩을 지원하지 않는 Windows입니다. Win32 :: Console :: ANSI를 사용해야합니다. 이 코드가 없으면 다음 코드가 시스템에서 수행중인 작업을 수행합니다. 그것으로 색상이 생성됩니다. 따라서 Windows를 사용 중이거나 터미널이 ANSI 색상을 지원하지 않습니다. Windows 사용자 인 경우 Win32 모듈을 추가하기 만하면됩니다.

use strict; 
use warnings; 

use Win32::Console::ANSI; 
use Term::ANSIColor; 

my $string = color('red') . 'hello world' . color('yellow') . ' another word'; 
print $string; 

exit 0; 
+0

사실 나는 curses를 사용하고 있는데, 문제는 ANSI 이스케이프가 curses에 의해 해석되지 않고 축 어적으로 인쇄되어있는 것처럼 보입니다. 표준 모드로 직접 인쇄하려면 Term :: ANSIColor가 정상적으로 작동합니다. – persson

관련 문제