So my issue is Term::ReadKey is broken for me. When I use something like the attached code
I see nothing until I hit enter. I have tried all the different options the module allows to no avail. The sample code is just that, a sample of code that doesn't work, I have simplified the code down to its bare essentials and tried that to no avail. Any ideas? Perhaps its my terminal?
#!/usr/bin/perl
use strict;
use warnings;
use Term::ReadKey;
my $key = 0;
my $password = "";
print "\nPlease input your password: ";
# Start reading the keys
ReadMode(4); #Disable the control keys
while(ord($key = ReadKey(0)) != 10)
# This will continue until the Enter key is pressed (decimal value of
+10)
{
# For all value of ord($key) see http://www.asciitable.com/
if(ord($key) == 127 || ord($key) == 8) {
chop($password);
#2 move the cursor back by one, print a blank character, move
+the cursor back by one
print "\b \b";
} elsif(ord($key) < 32) {
# Do nothing with these control characters
} else {
$password = $password.$key;
print "*(".ord($key).")";
}
}
ReadMode(0); #Reset the terminal once we are done
print "\n\nYour super secret password is: $password\n";