2014-12-06 25 views
0

我正在做一些簡單的項目,我希望使用箭頭在控制檯菜單中導航。我需要向下和向上的箭頭讓我改變選定的菜單項(我用一些顏色繪製菜單)。我不想通過輸入來確認每個箭頭(atm我正在使用需要輸入的簡單印章,而且我甚至不知道如何允許箭頭印刷)。我需要某種自動檢測箭頭有沒有什麼好的解決方案?允許在控制檯菜單中使用箭頭的Perl

+1

「沒有箭頭鍵(終端窗口中的敏感鍵代碼)。使用cat -vet可以知道鍵的期望順序。」 (來自http://www.perlmonks.org/?node_id=798213) – DavidO 2014-12-06 19:12:43

+0

查看'Term :: ReadKey'。 – dgw 2014-12-07 13:35:20

+0

我是使用Term:ReadKey,但是在閱讀密鑰後,我需要知道如何創建條件。 if(readedKey ==?keyup?){...} if(readedKey ==?keydown?){...} – user2771738 2015-01-14 10:10:14

回答

0

我需要知道如何使條件。如果(readedKey == KEYUP?){...} 如果(readedKey ==的keydown?){...}

你可以use Curses;例如:

#!/usr/bin/perl -w 
use Curses; 
initscr; refresh; 
keypad(1); # enable arrow keys to return a single value 
noecho; 
print "Press Esc to end.\r\n"; 
while (($readedKey = getch()) ne "\e") 
{ 
    if ($readedKey eq KEY_UP) { print "You pressed the up arrow.\r\n"; } 
    elsif ($readedKey eq KEY_DOWN) { print "You pressed the down arrow.\r\n"; } 
    else 
    { 
     ($printable = $readedKey) =~ s'[[:cntrl:]]'"^".chr(ord($&)^64)'e; 
     print "You pressed the key '$printable'.\r\n"; 
    } 
} 
endwin;