sudo cpan install Term::ReadKey
로 다운 받는다.
Term::ReadKey;
ReadMode MODE[,Filehandle]
MODE는 정수형으로 써야 하고 다음의 종류가 있다.
위의 함수는 다른 핸들을 사용하지 않으면 자동으로 STDIN 핸들을 사용한다.
0부터 5까지는 각각 특별한 속성을 가지고 있다
0번 모드는 전에 셋팅 되어 있던 모드를 기본 셋팅으로 돌려 놓는다.
5번 모드는 4번 모드와 CR/LF 번역을 제외하고 비슷한 동작을 한다.
그러나 윈도우에서는 4번모드와 5번 모드는 다르지 않다.
ReadKey MODE[,Filehandle]
MODE는 정수형으로 써야 하고 다음 종류가 있다.
0 : 문자 하나 입력 받는다. 입력 대기상태로 들어간다.
-1 : 문자 하나 입력 받는데 입력 대기상태로 들어가지 않는다.
0보다 큰 수 : 0보다 큰 수를 넣으면 넣은 수만큼 대기시킨다. 대기 중 입력을 하면 바로 진행된다.
*여기서 사용하는 MODE는 결국 시간이다.
만약에 파일핸들을 쓰지 않으면 기본적으로 STDIN이 동작한다.
-1 모드를 사용할 경우 non-block 모드이기 때문에 반복을 하지 않으면
원하는 동작을 얻어낼 수 없다.
http://search.cpan.org/~kjalb/TermReadKey-2.14/ReadKey.pm
에서 자세한 메소드들을 볼 수 있다.
use strict;
use warnings;
use Term::ReadKey;
ReadMode(3);
my $c=ReadKey(0);
print $c;
ReadMode(0);
위 소스는 visual c의 <conio.h> 의 getch 를 흉내낸 것이다.
콘솔용 게임을 만들기에 필수적인 요소이다.
Term::ANSIColor
에는 간단하게 두가지 메소드가있다.
color 과 colored 이다.
color는 한번 지정하면 계속 쓸수있고, colored는 출력한번만 원하는 색상으로 한다.
print colored("Yellow on magenta.", 'text'); 와 같이 쓰면 magenta 배경에 노란 text가 출력된다.
color(색 서식 문자열)
colored( [색 서식 문자열] , 출력 문자열)
로써
CLEAR
RESET
BOLD
DARK
FAINT
ITALIC
UNDERLINE
UNDERSCORE
BLINK
REVERSE
CONCEALED
BLACK
RED
GREEN
YELLOW
BLUE
MAGENTA
CYAN
WHITE
BRIGHT_BLACK
BRIGHT_RED
BRIGHT_GREEN
BRIGHT_YELLOW
BRIGHT_BLUE
BRIGHT_MAGENTA
BRIGHT_CYAN
BRIGHT_WHITE
ON_BLACK
ON_RED
ON_GREEN
ON_YELLOW
ON_BLUE
ON_MAGENTA
ON_CYAN
ON_WHITE
ON_BRIGHT_BLACK
ON_BRIGHT_RED
ON_BRIGHT_GREEN
ON_BRIGHT_YELLOW
ON_BRIGHT_BLUE
ON_BRIGHT_MAGENTA
ON_BRIGHT_CYAN
ON_BRIGHT_WHITE
위 글꼴특성 , 글자색 , 배경색을 순서대로 사용할 수 있다.
리눅스 터미널 모드에서는 BRIGHT모드나 글꼴을 지정할수 없다.