|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Artem Chuprina 2:5020/371.32 18 May 2000 18:01:29 To : Leonid Subbotin Subject : Re: про терминалы -------------------------------------------------------------------------------- <Leonid_Subbotin@f16.n5007.z2.fidonet.org> wrote: LS> use Term::ReadKey; LS> open(IN,"</dev/tty"); LS> ReadMode 3, IN; LS> rep: LS> $key=ReadKey(-1,IN); LS> if(unpack("c",$key) == 27){ LS> $key=unpack("c",ReadKey(-1,IN)); LS> if($key != 91){ LS> print "esc\n"; LS> goto rep;} LS> $key=unpack("c",ReadKey(-1,IN)); LS> if($key == 65){print "up\n";} LS> if($key == 66){print "down\n";} LS> if($key == 67){print "right\n";} LS> if($key == 68){print "left\n";} LS> } LS> goto rep; LS> проблемы в том, что с медленного терминала не работает (например модем), LS> точнее работает, только выскакивают 'esc' при длительном нажатии кнопки LS> (например up). В локале все ok. LS> Ваши предложения ? Подкрутить соответствующий таймаут. У всякой программы, работающей с терминалами, есть параметр "таймаут при ожидании окончания терминальной esc-последовательности". У Term::ReadKey он по логике вещей тоже должен быть. -- Счастливо! Ран. --- ifmail v.2.14.os-p7-tma3 * Origin: MemoNet (2:5020/371.32@fidonet) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/3473cdbdc9cc.html, оценка из 5, голосов 10
|