Главная страница


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)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 как сделать вводимые символы невидимыми?   Anton Dvoryasin   16 Jun 2004 14:45:26 
 Re: как сделать вводимые символы невидимыми?   Andrew Alakozow   23 Jun 2004 10:33:44 
 Re: как сделать вводимые символы невидимыми?   Anton Dvoryasin   27 Jun 2004 15:43:40 
Архивное /ru.perl/41492e18e0d0e.html, оценка 3 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional