[PERL] STDIN 으로 받을때, enter 키말고 다른키 기준으로 받을수 없을까요??
글쓴이: jekai / 작성시간: 금, 2008/01/04 - 10:27오후
안녕하세요 프로그래밍하다가 갑자기 궁금한 점이 생겨서 질문드립니다.
보통 C 에서 scanf 나 perl 에서 이나,, 문자들을 enter 키를 입력한시점까지 문자들을 받죠,,
그런데, 이 키를 다른 키로 바꿀려면 어떻게 해야죠???
보통 bash 나 , tcsh 같은경우 tab 키를 누르면 file list 가 나오는것 처럼요 ㅎㅎ
그리고 perl 하다가 궁금한게 또 있는데, perl 에서는 탭키나, capslock 키 같은 문자를 어떻게 인식하죠??
C에서는 ASCII 코드가 있는데.. 흠..
그럼 아시는 분 답변 부탁드립니다(__)
Forums:
저도 궁금해서 찾아봤는데..
저도 펄을 아직 서투르지만 궁금해서 찾아봤습니다.
정확히는 모르겠지만 ^^; 리눅스에서 터미널의 기본적인 인터페이스는 POSIX를 따릅니다.
그래서 POSIX쪽을 뒤져 보니까 나오네요.
정확히 원하시는 기능은 아니지만 그래도 유사하기에 코드를 올려봅니다.
조금 응용하시면 원하는 기능도 얻을수 있을듯 해요..
참고로 펄쿡북에서 발췌 했습니다.
터미널에서만 됩니다. 다른 도스창이나 Emacs쉘모드는 어떻게 될지는 모르겠네요..
백스페이스 기능을 '#'로 바꾸고 Ctrl-U를 '@'로 바꿉니다.
CPAN 에 Term::Readline 과
CPAN 에 Term::Readline 과 Term::Readline::* 류의 모듈이 바로 원하는 것일 것입니다.
해당 모듈 설치하시고 문서화 함께 GNU의 Readline 라이브러리 문서와 같이 참조하시면
편하게 터미널에서 키 바인딩 처리를 하실 수 있을 겁니다. :-)
---------------------------
Smashing Watermelons~!!
Whatever Nevermind~!!
Keedi Kim
----
use perl;
Keedi Kim
댓글 달기