我怎样才能让Perl一次从STDIN输入一个字符?

Phi*_*tPi 6 perl input

我是Perl的初学者(与此处的人相比).我知道足够能够通过命令提示符编写程序来执行许多操作.有一次,我决定写一个构建迷宫的命令提示游戏让我解决它.除了高质量的图形外,它唯一缺少的是能够让我在迷宫中每次移动后都不使用输入而使用WASD控件.

为了让我的游戏工作,我希望能够让Perl从STDIN获取单个字符作为输入,而不需要我使用某些东西来分隔我的输入,如默认值\n.我怎么做到这一点?

我曾尝试在线搜索一个简单的答案,并在我的书中找到,但我似乎没有找到任何东西.我尝试过设置$/="",但这似乎绕过了所有输入.我认为我的问题可能有一个非常简单的答案,但我也担心这可能是不可能的.

另外,$/=""实际上是否绕过输入,或者是否输入如此之快以至于如果我还没有按下键那么它假定没有任何输入?

Ala*_*avi 4

IO::Prompt可以使用:

#!/usr/bin/env perl

use strict;
use warnings;

use IO::Prompt;

my $key = prompt '', -1;
print "\nPressed key: $key\n";
Run Code Online (Sandbox Code Playgroud)

perldoc -v '$/'相关设置的相关摘录$/ = ''

输入记录分隔符,默认换行。这影响了 Perl 关于什么是“线”的想法。与 awk 的 RS 变量类似,包括 如果设置为空字符串(空行不能包含任何空格或制表符),则将空行视为终止符。