[Perl] Autoconstruire du code perl dans un switch

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Mer 3 Juil 15:49:02 CEST 2024


Non, la boucle est bonne, parce que j'incrémente la variable de 1 dans
la boucle... Si j'échange mon eval par un print, le formatage est bon
: c'est bien le code que je veux.

C'est l'exécution du eval qui foire...

Le mer. 3 juil. 2024 à 12:11, Stéphane Téletchéa
<stephane.teletchea at univ-nantes.fr> a écrit :
>
> Hello,
>
> A tout hasard, tu ne fais pas une lecture de trop dans la boucle ?
>
> 0..scalar(@tab) -> 0..scalar(@tab)-1
>
> Sinon, pas bien regardé en détail :-)
>
> HTH,
>
> Stéphane
>
> Le 03/07/2024 à 09:47, Patrice Karatchentzeff a écrit :
>
> Salut,
>
> J'ai un code qui fonctionne bien :
>
> while (1) {
>   $choice = randomize(3);
>
>   switch($choice) {
>     case 1  {($search, $target) = ("truc1", "truc2") };
>     case 2  {($search, $target) = ("truc3", "truc4")} ;
>     case 3  {($search, $target) = ("truc5", "truc6")};
>   };
>
> Pour automatiser mon code, j'extrait les « trucs » désormais d'un
> fichier et je les place dans un tableau de tableau. La longueur du
> tableau peut varier selon le nombre de lignes de « trucs ». Je
> voudrais auto-générer le code de mon switch :
>
> while (1) {
>   $choice = randomize(scalar(@tab);
>   switch($choice) {
>   for my $line (0..scalar(@tab) {
>        eval case, $line+1, "{(\$search, \$target) =
> (\"$tab[$line][0]\", \"$tab[$line][1]\") }";
> }
>   };
>
> J'ai alors un Bad case statement (invalid case value?). Donc le
> $line+1 ne passe pas (si je fais un print à la place du eval, le code
> perl est correct.
>
> Qu'est-ce que je rate ?
>
> Merci
>
> PK
>
> --
> Assistant Professor, USBB, UMR 6286 CNRS, Bioinformatique Structurale
> UFR Sciences et Techniques, 2, rue de la Houssinière, Bât. 25, 44322 Nantes cedex 03, France
> Tél : +33 251 125 636 / Fax : +33 251 125 632
> http://www.us2b.univ-nantes.fr/ - http://www.steletch.org
>
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
> Attention, les archives sont publiques



-- 
      |\      _,,,---,,_           Patrice KARATCHENTZEFF
ZZZzz /,`.-'`'    -.  ;-;;,_   mailto:patrice.karatchentzeff at gmail.com
     |,4-  ) )-,_. ,\ (  `'-'
    '---''(_/--'  `-'\_)


Plus d'informations sur la liste de diffusion Perl