Term::ReadKey:Термин :: ReadKey :: ReadKey: Почему MS Windows ведет себя иначе, чем Linux?
#!/usr/bin/env perl
use warnings;
use 5.012;
use Term::ReadKey;
my $key;
ReadMode 4;
print "Enter a key: ";
$key = ReadKey();
printf "|%s|\n", $key // 'undef';
$key = ReadKey(-1);
printf "|%s|\n", $key // 'undef';
$key = ReadKey(-1);
printf "|%s|\n", $key // 'undef';
ReadMode 0;
say "END";
Когда я запускаю этот скрипт на Windows, или Linux по работе с прессой k
я оба раза этот выход:
Enter a key: |k|
|undef|
|undef|
END
Когда я нажимаю «ключ» Up
я получаю
Enter a key: |
|[|
|A<
END
на Linux, но в Windows скрипт останавливается:
Enter a key:
Почему вместо этого я не вижу здесь каких-то странных знаков?
Документация звучит более оптимистично: «Одна из основных целей - максимально упростить функции как можно более переносимые, поэтому вы можете просто подключить« использование термина :: ReadKey »к любой архитектуре и иметь хорошую вероятность того, что она работает. ' –