2013-04-18 33 views
1

隨着dumpkeys --long-info稱爲一個Linux終端我得到這些值:什麼意思,當Term :: ReadKey :: ReadKey返回「0」?

# ... 
0x0000 nul 
0x0001 Control_a 
0x0002 Control_b 
0x0003 Control_c 
0x0004 Control_d 
# ... 

當我運行該腳本,並按Ctrl aCtrl b我得到相應的值。
當我按Ctrl SpaceReadKey返回0
這是否表示它是Ctrl Space的值,還是表示沒有設定或爲空?

#!/usr/bin/env perl 
use warnings; 
use strict; 
use Term::ReadKey; 

ReadMode('cbreak'); 
print "Press keys to see their ASCII values. Use Ctrl-C to quit.\n"; 

while (1) { 
    my $char = ReadKey(0); 
    last unless defined $char; 
    printf("$char -> Hex: %x\n", ord($char), ord($char)); 
} 

ReadMode('normal'); 

# -> Hex: 1 # Ctrl a 
# -> Hex: 2 # Ctrl b 
# -> Hex: 4 # Ctrl d 
# -> Hex: 0 # Ctrl Space 

回答

0

showkey -a顯示我

^A  1 0001 0x01 # Ctrl a 
^B  2 0002 0x02 # Ctrl b 
^@  0 0000 0x00 # Ctrl Space 

this回答說,按Ctrl空間發送ASCII NUL所以我假設0是按Ctrl空間什麼1對於Ctrla