2011-01-31 16 views

Respuesta

12

Si se encuentra en una plataforma Unix, puede abrir una manejador de archivos en /dev/tty (o use IO::Pty).
Un buen ejemplo de trabajo con TTY está en "comprobar si un programa se ejecuta de forma interactiva" ejemplo aquí: http://pleac.sourceforge.net/pleac_perl/userinterfaces.html

También debe considerar hacer contraseña IO a través de Term::ReadKey (descrito en perlfaq8) - Creo que puede estar ligada a TTY en lugar de STDIO, pero no estoy seguro. Si no es así, use la solución TTY + Term :: ReadKey que se encuentra al final de this SO answer by brian d foy.

Aquí hay un ejemplo.

It's not the best style (doesn't use 3-arg form of open, nor uses lexical filehandles) pero debería funcionar.

use autodie; # Yay! No "or die '' " 
use Term::ReadKey; 
open(TTYOUT, ">/dev/tty"); 
print TTYOUT "Password?: "; 
close(TTYOUT); 
open(TTY, "</dev/tty"); 
ReadMode('noecho'); 
$password = ReadLine(0, *TTY); 
+0

Problema resuelto. Muchas gracias. – Arkady

+0

@Arkady - de nada. Por favor, siéntase libre de aceptar la respuesta haciendo clic en la marca de verificación al lado (que también le otorgará 2 puntos de repetición), así como para votar por la respuesta (flecha arriba al lado) – DVK

Cuestiones relacionadas