C ++ getch () в Perl? - PullRequest
       24

C ++ getch () в Perl?

5 голосов
/ 07 июня 2010

В c ++ есть функция getch (), который возвращает переменная клавиши, которую вы нажали - как Enter будет 13. Как я могу сделать это в Perl?

Ответы [ 2 ]

8 голосов
/ 07 июня 2010

Вы можете использовать Term :: ReadKey .

2 голосов
/ 07 июня 2010

короче:

$x = ord(getc);

подробно:

$c = getc(STDIN);
$x = ord($c);

из perldoc -f getc:

"However, it cannot be used by itself to fetch single 
characters without waiting for the user to hit enter. 
For that, try something more like":

   1.  if ($BSD_STYLE) {
   2. system "stty cbreak </dev/tty >/dev/tty 2>&1";
   3. }
   4. else {
   5. system "stty", '-icanon', 'eol', "\001";
   6. }
   7.
   8. $key = getc(STDIN);
   9.
  10. if ($BSD_STYLE) {
  11. system "stty -cbreak </dev/tty >/dev/tty 2>&1";
  12. }
  13. else {
  14. system 'stty', 'icanon', 'eol', '^@'; # ASCII NUL
  15. }
  16. print "\n";
...