The Perl Toolchain Summit 2025 Needs You: You can help 🙏 Learn more

use strict;
use 5.10.1;
our $VERSION = '1.773';
use Exporter qw( import );
our @EXPORT_OK = qw(
NEXT_get_key
CONTROL_SPACE LINE_FEED CARRIAGE_RETURN
CONTROL_A CONTROL_B CONTROL_C CONTROL_D CONTROL_E CONTROL_F CONTROL_H CONTROL_I
CONTROL_K CONTROL_N CONTROL_P CONTROL_Q CONTROL_R CONTROL_S CONTROL_T CONTROL_U CONTROL_X
KEY_BTAB KEY_TAB KEY_ESC KEY_SPACE KEY_h KEY_j KEY_k KEY_l KEY_q KEY_Tilde KEY_BSPACE
VK_LEFT VK_RIGHT VK_UP VK_DOWN
VK_INSERT VK_DELETE VK_HOME VK_END VK_PAGE_UP VK_PAGE_DOWN
VK_F1 VK_F2 VK_F3 VK_F4
ROW COL
WIDTH_CURSOR EXTRA_W TERM_READKEY
PH SGR_ES
);
our %EXPORT_TAGS = (
all => [ @EXPORT_OK ]
);
use constant TERM_READKEY => eval { require Term::ReadKey; 1 };
use constant WIDTH_CURSOR => 1;
use constant EXTRA_W => $^O eq 'MSWin32' || $^O eq 'cygwin' ? 0 : WIDTH_CURSOR;
use constant {
PH => "\x{feff}", # zero width placeholder character
SGR_ES => '\e\[[\d;]*m',
};
use constant {
ROW => 0,
COL => 1,
};
use constant {
NEXT_get_key => -1,
CONTROL_SPACE => 0x00,
CONTROL_A => 0x01,
CONTROL_B => 0x02,
CONTROL_C => 0x03,
CONTROL_D => 0x04,
CONTROL_E => 0x05,
CONTROL_F => 0x06,
# CONTROL_G => 0x07,
CONTROL_H => 0x08,
KEY_BTAB => 0x08,
CONTROL_I => 0x09,
KEY_TAB => 0x09,
# CONTROL_J => 0x0a,
LINE_FEED => 0x0a,
CONTROL_K => 0x0b,
# CONTROL_L => 0x0c,
# CONTROL_M => 0x0d,
CARRIAGE_RETURN => 0x0d,
CONTROL_N => 0x0e,
# CONTROL_O => 0x0f,
CONTROL_P => 0x10,
CONTROL_Q => 0x11,
CONTROL_R => 0x12, # unused
CONTROL_S => 0x13,
CONTROL_T => 0x14,
CONTROL_U => 0x15,
# CONTROL_V => 0x16,
# CONTROL_W => 0x17,
CONTROL_X => 0x18,
# CONTROL_Y => 0x19,
# CONTROL_Z => 0x1a,
KEY_ESC => 0x1b,
KEY_SPACE => 0x20,
KEY_h => 0x68,
KEY_j => 0x6a,
KEY_k => 0x6b,
KEY_l => 0x6c,
KEY_q => 0x71,
KEY_Tilde => 0x7e,
KEY_BSPACE => 0x7f,
VK_PAGE_UP => 333, # VK_CODE_KEY + 300
VK_PAGE_DOWN => 334,
VK_END => 335,
VK_HOME => 336,
VK_LEFT => 337,
VK_UP => 338,
VK_RIGHT => 339,
VK_DOWN => 340,
VK_INSERT => 345,
VK_DELETE => 346,
VK_F1 => 412,
VK_F2 => 413,
VK_F3 => 414,
VK_F4 => 415,
};
1;
__END__