[Perl] Autoconstruire du code perl dans un switch

Patrice Karatchentzeff patrice.karatchentzeff at gmail.com
Mer 3 Juil 09:47:26 CEST 2024


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

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


Plus d'informations sur la liste de diffusion Perl