我遇到了一个我无法通过下面的子程序理解的问题:
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;
}
除非密码包含“#”,否则上述脚本可以正常工作。如果它包含“#”,则调用上述子程序的主子程序没有与工具连接,我需要自动化。尽管该工具没有问题#
——当我手动使用它时,“它可以很好地使用#”。所以我认为 Perl 本身存在一些问题。你能帮忙吗?