[Perl] Autoconstruire du code perl dans un switch

Christophe Olivier c.olivier at agencelafusee.com
Mer 3 Juil 15:58:04 CEST 2024


Salut,

J'ai regardé rapidement, mais il me semble qu'il faut que tu eval tous 
le code du switch.

Bien cordialement

Christophe

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
>


Plus d'informations sur la liste de diffusion Perl