How do I ask the user for a password?

(This question has nothing to do with the web. See a different FAQ for that.)

There's an example of this in perlfunc/crypt). First, you put the terminal into "no echo" mode, then just read the password normally. You may do this with an old-style ioctl() function, POSIX terminal control (see POSIX or its documentation the Camel Book), or a call to the stty program, with varying degrees of portability.

You can also do this for most systems using the Term::ReadKey module from CPAN, which is easier to use and in theory more portable.

    use Term::ReadKey;
    ReadMode('noecho');
    $password = ReadLine(0);

Back to perlfaq8