|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrew Alakozow 2:5061/6 23 Jun 2004 10:33:44 To : Anton Dvoryasin Subject : Re: как сделать вводимые символы невидимыми? --------------------------------------------------------------------------------
AD> Вот такой вопрос меня озадачил:
AD> как каждый вводимый в <STDIN> символ заменять на "*"? при вводе прям.
AD> ну для вводы пароля это. или как ничего на экране не показывать, как в
AD> юниксах?
use Term::ReadKey;
local $| = 1;
binmode STDIN;
my $pwd;
print "Password: ";
ReadMode ('cbreak');
while (defined (my $ch = ReadKey ())) {
last if $ch eq "\x0a" or $ch eq "\x0d";
if ($ch eq "\x08") { # backspace
print "\b \b" if $pwd; # back up 1
chop $pwd;
next;
}
$pwd .= $ch;
print '*';
}
ReadMode ('restore');
print "\n$pwd\n";
aa29
--- Microsoft Outlook Express 6.00.2720.3000
* Origin: Life In The Dark (2:5061/6)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/41492e18e0d0e.html, оценка из 5, голосов 10
|