【发布时间】:2016-09-30 22:56:03
【问题描述】:
如何在终端不显示密码的情况下提示终端用户输入密码? How can I enter a password using Perl and replace the characters with '*'? 有一个类似的问题,但答案似乎已过时或损坏。
我一直在寻找这个问题的答案,但对结果后面几页中的问题不满意,这些问题的答案与其他问题无关。
另外,perlfaq8 有一个不完整的示例(哦,谁曾经维护过它;)。
use Term::ReadKey;
ReadMode('noecho');
my $password = ReadLine(0);
当您在不重置终端的情况下执行此操作时,没有其他任何回声!糟糕!
我也在寻找更新的答案或模块,我们可以提供给想要这样做的人。
【问题讨论】:
-
过去几年这里有什么变化吗? - 对我来说(截至 09/2020)这适用于 LWP::UserAgent:
print "password please: "; ReadMode('noecho'); my $pass=ReadLine(0); chomp($pass); $request->authorization_basic('username', $pass); -
LWP 与它没有任何关系。否则你有相同的代码。
-
正确。我的意思是,我在 LWP 的上下文中使用了 perlfaq8 中的那些行(这可能是无用的信息)——在这种情况下它工作得非常好。没问题,无需重置终端。 (也许你在 4 年前看到的问题已经解决了?不知道)