0 desactiva el cronómetro.
Este primer ejemplo pide al usuario un password, controlando si el tiempo
de lectura ha excedido un cierto límite:
lhp@nereida:~/Lperl/src$ cat -n time_exceeded.pl
1 #!/usr/bin/perl -w
2 use strict;
3 use Term::ReadKey;
4
5 my $deadline = (shift || 3);
6 my $time_exceeded = 0;
7 sub set_time_exceeded { $time_exceeded = 1; }
8 ReadMode('noecho');
9 local $SIG{ALRM} = "set_time_exceeded";
10 print "Teclee su password: ";
11 alarm($deadline);
12 my $passwd = ReadLine(0); # 0 = lectura normal desde STDIN
13 alarm(0);
14 ReadMode 0; # Restaurar valores originales
15 print "\n";
16 print STDERR "Tiempo excedido.\n" if $time_exceeded;
En este ejemplo hemos utilizado el módulo Term::ReadKey para evitar
el eco del tecleo de la clave en la pantalla.
Para leer un password es recomendable que use el módulo Term::ReadPassword disponible en CPAN:
lhp@nereida:~/Lperl/src$ perl -wd -e 0
main::(-e:1): 0
DB<1> use Term::ReadPassword
DB<2> $password = read_password('password: ', 3)
password:
DB<3> x $password
0 undef
DB<4> $password = read_password('password: ', 10)
password:
DB<5> x $password
0 'skasjfd'
DB<6> $password = read_password('password: ')
password:
DB<7> x $password
0 'sdhdfh'
Casiano Rodríguez León
