[langage] la commande binmode
Bonjour,
j'utilise la commande binmode dans un bout de code que j'ai trouvé qui sert à saisir un password en caché :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| $| = 1; # unbuffer stdout
my $pwd = '';
if (0) {
print "Password: ";
ReadMode ('noecho');
$pwd = ReadLine ();
chomp $pwd;
ReadMode ('restore');
} else {
binmode STDIN;
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;
}
if ($ch eq "\x15") { # ^U
print "\b \b" x length $pwd; # back 1 for each char
$pwd = '';
next;
}
$pwd .= $ch;
print '*';
}
ReadMode ('restore');
} |
Donc mon problème est le suivant : comment faire l'inverse de binmode pour pouvoir réutiliser la commande <STDIN> en ascii ?
Merci d'avance pour votre aide...