nixp.ru v3.0

24 мая 2017,
среда,
03:31:15 MSK

DevOps с компанией «Флант»
mfasakhov написал 25 июня 2008 года в 14:59 (1476 просмотров) Ведет себя неопределенно; открыл 1 тему в форуме, оставил 3 комментария на сайте.

Как в Perl ввести с клавиатуры строку, чтобы это не отображалось на экране.

Например когда нужно ввести пароль.

myst

Ну можно curses заюзать…

Дмитрий Шурупов
mfasakhov
Как в Perl ввести с клавиатуры строку, чтобы это не отображалось на экране.



close(STDOUT);
myst

Эм… Потом открывать придётся :D

mfasakhov

close(STDOUT) не помог :( :

close(STDOUT);

$ln=<>; # Все-равно ввод виден

print «$ln\n»; # Здесь ничего не выводит

metal

http://darkeside.blogspot.com/2005/12/switching-off-terminal-echo-in-perl.html

mfasakhov

Спасибо за ссылку, metal — заработало!

Всем спасибо за участие.

Anarchist
mfasakhov
Спасибо за ссылку, metal — заработало!

Всем спасибо за участие.

Ещё хотя бы один листинг в качестве иллюстрации способа решения проблемы — и действительно всё в порядке.

mfasakhov

Сделал примерно так:

use Term::ReadKey;

sub InputUsername

{

print «Enter Username: »;

$username = ReadLine;

chomp $username;

}

sub InputPassword

{

print 'Password: ';

ReadMode 'noecho’;

$password = ReadLine;

ReadMode 'normal’;

chomp $password;

}