Term::ReadKey:Term :: 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
が、私はこの出力の両方の時間を得る:私はUp
"キー" を押すと
Enter a key: |k|
|undef|
|undef|
END
私は
を取得Enter a key: |
|[|
|A<
END
(Linux)ただし、Windowsではスクリプトが停止するようになりました。
なぜ私はここに奇妙な兆候がないのですか?
ドキュメンテーションは楽観的に聞こえます。「主要な目標の1つは、できるだけ移植性の高い機能を持たせることです。したがって、どのアーキテクチャでもTerm :: ReadKeyを使用してプラグインするだけでよいでしょう。 ' –