Perl 从 stdin 输入一个字符

can*_*kmu 1 perl input

Perl 如何从stdin一个字符进行输入

readline -N1
Run Code Online (Sandbox Code Playgroud)

做?

小智 5

您可以使用基本 perl 发行版来做到这一点,无需安装额外的软件包:

\n
use strict;\nsub IO::Handle::icanon {\n        my ($fh, $on) = @_;\n        use POSIX;\n        my $ts = new POSIX::Termios;\n        $ts->getattr(fileno $fh) or die "tcgetattr: $!";\n        my $f = $ts->getlflag;\n        $ts->setlflag($on ? $f | ICANON : $f & ~ICANON);\n        $ts->setattr(fileno $fh) or die "tcsetattr: $!";\n}\n\n# usage example\n# a key like `Left` or `\xc3\xa1` may generate multiple bytes\nSTDIN->icanon(0);\nsysread STDIN, my $c, 256;\nSTDIN->icanon(1);\n# the read key is in $c\n
Run Code Online (Sandbox Code Playgroud)\n

Left仅读取一个字节可能不是一个好主意,因为当按下或 之类的键时,它只会留下垃圾以供稍后读取F1。但无论如何,如果您想要的话,您可以将其替换为2561

\n