Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Term::UI, get_reply et choix par defaut

2 réponses
Avatar
Eric C.
Bonjour =E0 tous,

J'obtiens un comportement etrange de la part de la methode get_reply
avec le code suivant :
use strict;
use warnings;
use Term::UI;
use Term::ReadLine;
my @valeurs =3D (86,81);
my $term =3D Term::ReadLine->new('epaisseur');
my $choice =3D $term->get_reply(
print_me =3D> 'Epaisseur en mm ?',
prompt =3D> 'Votre reponse : ',
choices =3D> \@valeurs,
default =3D> $valeurs[0],
);
La reponse par defaut qui m'est propos=E9e est bien la premi=E8re de la
liste @valeurs, mais si je valide sans repondre explicitement,
j'obtiens le message "Invalid selection, please try again". Je suis
oblig=E9 de r=E9pondre explicitement pour que le choix soit bien pris en
compte.

Merci =E0 tous ceux qui ont un fragment d'explication ...

Eric

2 réponses

Avatar
perlgenome
Le problème c'est
my @valeurs = (86,81);

Le tableau ne doit pas contenir d'entier, car le prompt s'attends à ce
que tu lui tape :
1 pour choix 1
2 pour choix 2
etc

or dans ton cas, par défaut, c'est 86 et 86 ne représente rien dans
les choix. Donc, c'est une limite ou bug du module.
Si tu mettais my @valeurs = (' 86 ',' 81 '); comme par hasard, ça
fonctionne mieux :-) !!

Genomart
Avatar
Eric C.
On 26 nov, 17:13, perlgenome wrote:
Le problème c'est
my @valeurs = (86,81);

Le tableau ne doit pas contenir d'entier, car le prompt s'attends à ce
que tu lui tape :
 1 pour choix 1
2 pour choix 2
etc

or dans ton cas, par défaut, c'est 86 et 86 ne représente rien dans
les choix. Donc, c'est une limite ou bug du module.
Si tu mettais my @valeurs = (' 86 ',' 81 '); comme par hasard, ça
fonctionne mieux :-) !!




Merci !


Eric