Bonjour,
j'utilise la commande binmode dans un bout de code que j'ai trouvé qui sert à saisir un password en caché :
Donc mon problème est le suivant : comment faire l'inverse de binmode pour pouvoir réutiliser la commande <STDIN> en ascii ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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'); }
Merci d'avance pour votre aide...
Partager