在提示输入密码时,是否可以通过IO::Prompter配置prompt,使输入不会添加到历史记录中?
#!/usr/local/bin/perl
use warnings;
use strict;
use 5.10.1;
use utf8;
use open qw( :encoding(UTF-8) :std );
use IO::Prompter;
my $password = prompt( 'Password: ', -echo => '' );
say $password;
$password = prompt( 'Password: ', -echo => '' );
say $password;
$password = prompt( 'Password: ', -echo => '' );
say $password;
$password = prompt( 'Password: ', -echo => '' );
say $password;
$password = prompt( 'Password: ', -echo => '' );
say $password;发布于 2013-01-17 04:10:41
当你写这个问题的时候,这是不可能的,但是IO::Prompter已经打了补丁,包括特殊的历史集NONE,它禁用了历史。
带有补丁的IO::Prompter的第一个版本是0.004003。
http://search.cpan.org/~dconway/IO-Prompter-0.004003/lib/IO/Prompter.pm
my $password = prompt('Password: ', -hNONE, -echo => '');
my $force_the_user_to_type = prompt('Type something: ', -hNONE);发布于 2013-01-16 00:02:13
如果您愿意使用其他模块,我建议您使用Term::ReadKey
下面是我编写的一个示例脚本,它将禁用echo以进行读取,读取一行并返回它接收到的内容以进行测试。
#!/usr/bin/perl
use strict;
use warnings;
use Term::ReadKey;
ReadMode 2;
my $pw;
print "Enter password ";
while ( not defined( $pw ) ) {
$pw = ReadLine(-1);
}
chomp $pw;
print "\nI got $pw entered\n";
ReadMode 0;https://stackoverflow.com/questions/14341038
复制相似问题