6

我尝试了以下代码

use strict; 
use warnings;

use Term::ReadPassword::Win32 qw(read_password);

my $pw = read_password('pw: ');
print "pw $pw\n";
my $x = <STDIN>;
print "x: $x\n";

它确实要求输入密码并且不会回显答案,但随后会跳过其后面的 <STDIN>。我想这是 Term::ReadPassword::Win32 中的一个错误,所以我想知道是否还有另一个模块在 Windows 上运行良好?

4

1 回答 1

3

http://www.perlmonks.org/?node_id=886306报告了同样的问题,并提供了使用 Term::ReadKey 的替代读取密码实现。根本问题是Win32::Console 中的这个错误,可以通过重新打开 STDIN 和/或 STDOUT 来解决。

于 2012-01-18T15:18:07.810 回答