Timeout & Saisie

Le
ebrnospam
Bonjour à tous,

j'essaye d'écrire ce petit algorithme en PERL mais sans succès :

comptearebours = 10secondes;

faire
afficher un calcul // Exemple 3*6
lire le résultat
tant que ( résultat non correct && comptearebour != 0 )

j'ai tenté d'utiliser alarm, AnyEvent mais sans grand succès jusqu'alors

Pourriez vous m'aider ?

Merci

Eric
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Jean-Louis Morel
Le #25214972
Le 09/02/2013 18:57, ebrnospam a écrit :

j'essaye d'écrire ce petit algorithme en PERL mais sans succès :

comptearebours = 10secondes;

faire
afficher un calcul // Exemple 3*6
lire le résultat
tant que ( résultat non correct && comptearebour != 0 )

j'ai tenté d'utiliser alarm, AnyEvent mais sans grand succès jusqu'alors ...

Pourriez vous m'aider ?




Avec la fonction alarm, la construction basique est du genre :

#!/usr/bin/perl
use strict;
use warnings;
$|++;

my $timeout = 10;

eval {
local $SIG{ALRM} = sub { die "alarmn" };
alarm $timeout;
job();
alarm 0;
};

if ($@) {
die unless $@ eq "alarmn";
print "nTrop tard !n";
}

sub job {
print "3 * 6 = ";
while ( <STDIN> != 18 ) {
print "incorrectn3 * 6 = ";
}
print "okn";
}

__END__

Script testé avec Perl 5.14 sous Ubuntu.
Ne fonctionne pas sous Windows (la fonction alarm n'est pas implémentée).

HTH.

--
J-L
http://www.bribes.org/perl
Publicité
Poster une réponse
Anonyme