我们有一个使用终端读取密码的 Perl 脚本。此脚本在 Windows 上不起作用,因为终端不可用。
我们做了一些研究,发现 ReadKey/Readline 是一个替代方案。然而,这个包不是我们默认 Perl 安装的一部分。
有没有办法在不使用终端或 ReadKey/Readline 的情况下在 Perl 中读取密码?
如果您正在寻找一种在终端不回显的情况下获取密码的方法,请尝试以下操作:
use Term::ReadKey;
print "Enter password:";
ReadMode('noecho');
my $password = <STDIN>;
chomp($password);
稍后,如果您必须恢复正常的终端输入回显,请编写以下内容:
ReadMode(0);
此解决方案需要安装Term::ReadKey,它也适用于 Windows。
可以在此处找到有关使用 ActivePerl 安装 CPAN 模块的说明:
可以在此处找到有关使用 Strawberry Perl 安装 CPAN 模块的说明: