use Term::ReadKey;
ReadMode 'noecho';
my $passw = ReadLine;
ReadMode 'restore';
print "$passw\n"; # just to check
####
use Term::ReadKey;
use Fcntl "O_RDWR";
if ($^O =~ /Win32/i) {
sysopen IN, 'CONIN$', O_RDWR or die "Unable to open console for input: $!";
} else {
open IN, "<", "/dev/tty" or die "Unable to open tty for input: $!";
}
ReadMode 'noecho', *IN;
my $passw = ReadLine 0, *IN;
ReadMode 'restore', *IN;
print "$passw\n"; # just to check
####
use Term::ReadKey;
use Fcntl "O_RDWR";
if ($^O =~ /Win32/i) {
sysopen IN, 'CONIN$', O_RDWR or die "Unable to open console for input: $!";
} else {
open IN, "<", "/dev/tty" or die "Unable to open tty for input: $!";
}
ReadMode 'noecho', *IN;
my ($ch, $passw);
do {
$ch = ReadKey 0, *IN;
$passw .= $ch;
substr($passw,-2)='' if ord($ch)==127; # BS
} until ($ch eq "\n");
ReadMode 'restore', *IN;
print "$passw\n";