我正在用 perl 开发一个自动化脚本,在该脚本中,我编写了一个子例程,它接受用户输入的密码并将其返回给 perl 主程序,后者又将密码传递给我需要自动化的工具。
#
除非字符是密码的一部分,否则此脚本适用于所有情况。然后它无法自动化该工具并且无法进行身份验证。
下面是我用来输入密码的子程序。
use Win32::Console;
sub password() {
$StdIn = new Win32::Console(STD_INPUT_HANDLE);
my $Password = "";
$StdIn->Mode(ENABLE_PROCESSED_INPUT);
print "Enter Password: ";
while (ord(my $Data = $StdIn->InputChar(1)) != 10) {
if("\r" eq $Data ) {
last;
}
elsif ("\ch" eq $Data) {
if( "" ne chop( $Password )) {
print "\ch \ch";
}
next;
}
$Password .=$Data;
print "*";
}
return $Password;
}
我将上述子程序称为
$passwd = &password();
然后传递 $passwd
给我需要自动化的工具,如下所示,
这是我将密码传递给工具的行,
cc -c URL OF THE TOOL:$server -d $domain -t $appl -u $userid -p $passwd; \n";
任何人都可以交叉检查调用password() 子例程、返回$password 并将$passwd 传递给工具的代码。我认为错误可能出现在三个地方之一。请有人帮忙,如果可能的话也提供代码。