Есть ли что-то похожее на keypad(1)
снаружи от Curses
?
Я хотел бы написать что-то вроде этого, но без использования Curses
и без обработки escape-последовательностей самостоятельно.
#!/usr/bin/env perl
use warnings;
use 5.012;
use Curses;
initscr();
raw();
printw( qq{Press "Delete"} );
noecho();
keypad(1);
my $c = getch();
endwin();
if ( $c =~ /\A330\z/ ) {
say "OK";
} else {
say qq{You didn't press "Delete"};
}
Когда я использую Term::ReadKey
, он ведет себя по-другому:
#!/usr/bin/env perl
use warnings;
use 5.012;
use Term::ReadKey;
ReadMode('raw');
print qq{Press "Delete" };
while ( 1 ) {
my $c = ReadKey( 0 );
last if $c eq 'q';
say "<$c>";
}
ReadMode('normal');
Вывод после нажатия «Удалить»:
Press "Delete" <
<[>
<3>
<~>