2013-04-18 35 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