<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Texte brut Car";
        margin:0cm;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}
span.TextebrutCar
        {mso-style-name:"Texte brut Car";
        mso-style-priority:99;
        mso-style-link:"Texte brut";
        font-family:"Calibri",sans-serif;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 70.85pt 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="FR" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoPlainText">J'aime bien la logique KISS, je suis très feignant (pas paresseux !)
<span style="font-family:&quot;Segoe UI Emoji&quot;,sans-serif">&#128521;</span><o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><span style="mso-fareast-language:FR">-----Message d'origine-----<br>
De&nbsp;: perl-bounces@mongueurs.net &lt;perl-bounces@mongueurs.net&gt; De la part de Patrice Karatchentzeff<br>
Envoyé&nbsp;: mercredi 3 juillet 2024 17:22<br>
À&nbsp;: Liste francophone pour les questions générales sur Perl &lt;perl@mongueurs.net&gt;<br>
Objet&nbsp;: Re: [Perl] Autoconstruire du code perl dans un switch</span></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">Désolé, je n'avais pas vu ta réponse...<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">Effectivement, l'idée est bonne et m'évite de passer par un eval.<o:p></o:p></p>
<p class="MsoPlainText">J'étais obsédé par l'idée de réécrire le même code, alors que ton idée le simplifie : c'est une bien meilleure approche !<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">Merci<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">Le mer. 3 juil. 2024 à 10:11, Guerlais, Patrice (ITOP TD) - AF &lt;<a href="mailto:paguerlais@airfrance.fr"><span style="color:windowtext;text-decoration:none">paguerlais@airfrance.fr</span></a>&gt; a écrit :<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Bonjour,<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; je ne suis pas sûr de comprendre pas ce que tu veux faire : tel que je
<o:p></o:p></p>
<p class="MsoPlainText">&gt; comprends ton code qui fonctionne, tu initialises deux variables
<o:p></o:p></p>
<p class="MsoPlainText">&gt; $search et $target avec des valeurs qui dépendent de $choice, puis
<o:p></o:p></p>
<p class="MsoPlainText">&gt; probablement (non montré) tu fais un traitement avec elles. Ok<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Dans ta deuxième version, et toujours si je comprends ce que tu veux faire, tu veux récupérer le n-ième (n généré aléatoirement) couple de valeurs depuis un tableau, affecter les valeurs à deux variables ($search et $target), puis
 probablement (non montré) faire un traitement dessus. Pour ça tu précharges le fichier dans un tableau pour éviter de le relire à chaque itération. Alors pourquoi t'embêter avec switch/case, puisque tu récupères immédiatement les valeurs dans le tableau ?<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; # Pré-chargement de @tab<o:p></o:p></p>
<p class="MsoPlainText">&gt; ...<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; while (1)<o:p></o:p></p>
<p class="MsoPlainText">&gt; {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ($search, $target) = $tab[randomize(@tab)]-&gt;[0..1] ;<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; # probablement un traitement autour de $search et $target ici<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ...<o:p></o:p></p>
<p class="MsoPlainText">&gt; }<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Mais j'ai peut-être tout compris de travers...<o:p></o:p></p>
<p class="MsoPlainText">&gt; Patrice<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; -----Message d'origine-----<o:p></o:p></p>
<p class="MsoPlainText">&gt; De : <a href="mailto:perl-bounces@mongueurs.net"><span style="color:windowtext;text-decoration:none">perl-bounces@mongueurs.net</span></a> &lt;<a href="mailto:perl-bounces@mongueurs.net"><span style="color:windowtext;text-decoration:none">perl-bounces@mongueurs.net</span></a>&gt;
 De la <o:p></o:p></p>
<p class="MsoPlainText">&gt; part de Patrice Karatchentzeff Envoyé : mercredi 3 juillet 2024 09:47
<o:p></o:p></p>
<p class="MsoPlainText">&gt; À : Perl &lt;<a href="mailto:perl@mongueurs.net"><span style="color:windowtext;text-decoration:none">perl@mongueurs.net</span></a>&gt; Objet : [Perl] Autoconstruire du code
<o:p></o:p></p>
<p class="MsoPlainText">&gt; perl dans un switch<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Salut,<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; J'ai un code qui fonctionne bien :<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; while (1) {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; $choice = randomize(3);<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; switch($choice) {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp; case 1&nbsp; {($search, $target) = (&quot;truc1&quot;, &quot;truc2&quot;) };<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp; case 2&nbsp; {($search, $target) = (&quot;truc3&quot;, &quot;truc4&quot;)} ;<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp; case 3&nbsp; {($search, $target) = (&quot;truc5&quot;, &quot;truc6&quot;)};<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; };<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; 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 :<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; while (1) {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; $choice = randomize(scalar(@tab);<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; switch($choice) {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; for my $line (0..scalar(@tab) {<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; eval case, $line+1, &quot;{(\$search, \$target) = (\&quot;$tab[$line][0]\&quot;, \&quot;$tab[$line][1]\&quot;) }&quot;; }<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp; };<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; J'ai alors un Bad case statement (invalid case value?). Donc le<o:p></o:p></p>
<p class="MsoPlainText">&gt; $line+1 ne passe pas (si je fais un print à la place du eval, le code perl est correct.<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Qu'est-ce que je rate ?<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Merci<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; PK<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; --<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _,,,---,,_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Patrice KARATCHENTZEFF<o:p></o:p></p>
<p class="MsoPlainText">&gt; ZZZzz /,`.-'`'&nbsp;&nbsp;&nbsp; -.&nbsp; ;-;;,_&nbsp;&nbsp; <a href="mailto:patrice.karatchentzeff@gmail.com">
<span style="color:windowtext;text-decoration:none">mailto:patrice.karatchentzeff@gmail.com</span></a><o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; |,4-&nbsp; ) )-,_. ,\ (&nbsp; `'-'<o:p></o:p></p>
<p class="MsoPlainText">&gt;&nbsp;&nbsp;&nbsp;&nbsp; '---''(_/--'&nbsp; `-'\_)<o:p></o:p></p>
<p class="MsoPlainText">&gt; _______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">&gt; Perl mailing list<o:p></o:p></p>
<p class="MsoPlainText">&gt; <a href="mailto:Perl@mongueurs.net"><span style="color:windowtext;text-decoration:none">Perl@mongueurs.net</span></a><o:p></o:p></p>
<p class="MsoPlainText">&gt; <a href="http://listes.mongueurs.net/mailman/listinfo/perl">
<span style="color:windowtext;text-decoration:none">http://listes.mongueurs.net/mailman/listinfo/perl</span></a><o:p></o:p></p>
<p class="MsoPlainText">&gt; Attention, les archives sont publiques <o:p></o:p></p>
<p class="MsoPlainText">&gt; [https://img.static-af.com/images/media/C031A655-6574-400A-A8754B3A9D2<o:p></o:p></p>
<p class="MsoPlainText">&gt; BD37E/source/logo-af-215x60]&lt;<a href="http://www.airfrance.com"><span style="color:windowtext;text-decoration:none">http://www.airfrance.com</span></a>&gt;<o:p></o:p></p>
<p class="MsoPlainText">&gt; --<o:p></o:p></p>
<p class="MsoPlainText">&gt;<o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">&gt; Accédez aux meilleurs tarifs Air France, gérez vos réservations et
<o:p></o:p></p>
<p class="MsoPlainText">&gt; enregistrez-vous en ligne sur <a href="http://www.airfrance.com">
<span style="color:windowtext;text-decoration:none">http://www.airfrance.com</span></a> Find best Air
<o:p></o:p></p>
<p class="MsoPlainText">&gt; France fares, manage your reservations and check in online at
<o:p></o:p></p>
<p class="MsoPlainText">&gt; <a href="http://www.airfrance.com"><span style="color:windowtext;text-decoration:none">http://www.airfrance.com</span></a> ________________________________ Les données
<o:p></o:p></p>
<p class="MsoPlainText">&gt; et renseignements contenus dans ce message peuvent être de nature
<o:p></o:p></p>
<p class="MsoPlainText">&gt; confidentielle et soumis au secret professionnel et sont destinés à
<o:p></o:p></p>
<p class="MsoPlainText">&gt; l'usage exclusif du destinataire dont les coordonnées figurent ci-dessus. Si vous recevez cette communication par erreur, nous vous demandons de ne pas la copier, l'utiliser ou la divulguer. Nous vous prions de notifier cette erreur
 à l'expéditeur et d'effacer immédiatement cette communication de votre système. Société Air France - Société anonyme au capital de 126 748 775 euros - RCS Bobigny (France) 420 495 178 - 45, rue de Paris, Tremblay-en-France, 95747 Roissy Charles de Gaulle CEDEX
 The data and information contained in this message may be confidential and subject to professional secrecy and are intended for the exclusive use of the recipient at the address shown above. If you receive this message by mistake, we ask you not to copy, use
 or disclose it. Please notify this error to the sender immediately and delete this message from your system. Société Air France - Limited company with capital of 126,748,775 euros - Bobigny register of companies (France) 420 495 178 - 45, rue de Paris, Tremblay-en-France,
 95747 Roissy Charles de Gaulle CEDEX ________________________________ Pensez à l'environnement avant d'imprimer ce message.<o:p></o:p></p>
<p class="MsoPlainText">&gt; Think of the environment before printing this mail.<o:p></o:p></p>
<p class="MsoPlainText">&gt; _______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">&gt; Perl mailing list<o:p></o:p></p>
<p class="MsoPlainText">&gt; <a href="mailto:Perl@mongueurs.net"><span style="color:windowtext;text-decoration:none">Perl@mongueurs.net</span></a><o:p></o:p></p>
<p class="MsoPlainText">&gt; <a href="http://listes.mongueurs.net/mailman/listinfo/perl">
<span style="color:windowtext;text-decoration:none">http://listes.mongueurs.net/mailman/listinfo/perl</span></a><o:p></o:p></p>
<p class="MsoPlainText">&gt; Attention, les archives sont publiques<o:p></o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText"><o:p>&nbsp;</o:p></p>
<p class="MsoPlainText">-- <o:p></o:p></p>
<p class="MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|\&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; _,,,---,,_&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Patrice KARATCHENTZEFF<o:p></o:p></p>
<p class="MsoPlainText">ZZZzz /,`.-'`'&nbsp;&nbsp;&nbsp; -.&nbsp; ;-;;,_&nbsp;&nbsp; <a href="mailto:patrice.karatchentzeff@gmail.com">
<span style="color:windowtext;text-decoration:none">mailto:patrice.karatchentzeff@gmail.com</span></a><o:p></o:p></p>
<p class="MsoPlainText">&nbsp;&nbsp;&nbsp;&nbsp; |,4-&nbsp; ) )-,_. ,\ (&nbsp; `'-'<o:p></o:p></p>
<p class="MsoPlainText">&nbsp;&nbsp;&nbsp; '---''(_/--'&nbsp; `-'\_)<o:p></o:p></p>
<p class="MsoPlainText">_______________________________________________<o:p></o:p></p>
<p class="MsoPlainText">Perl mailing list<o:p></o:p></p>
<p class="MsoPlainText"><a href="mailto:Perl@mongueurs.net"><span style="color:windowtext;text-decoration:none">Perl@mongueurs.net</span></a><o:p></o:p></p>
<p class="MsoPlainText"><a href="http://listes.mongueurs.net/mailman/listinfo/perl"><span style="color:windowtext;text-decoration:none">http://listes.mongueurs.net/mailman/listinfo/perl</span></a><o:p></o:p></p>
<p class="MsoPlainText">Attention, les archives sont publiques<o:p></o:p></p>
</div>
<p><a href="http://www.airfrance.com"><img src="https://img.static-af.com/images/media/C031A655-6574-400A-A8754B3A9D2BD37E/source/logo-af-215x60" width="215" height="60" border="0"></a><br>
<font color="#FFFFFF" face="Verdana, Arial, Helvetica, sans-serif" size="1">--</font><br>
<br>
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">Accédez aux meilleurs tarifs Air France, gérez vos réservations et enregistrez-vous en ligne sur
<a href="http://www.airfrance.com" target="_blank">http://www.airfrance.com </a></font><br>
<font color="#8C8B8B" face="Verdana, Arial, Helvetica, sans-serif" size="1">Find best Air France fares, manage your reservations and check in online at
<a href="http://www.airfrance.com" target="_blank">http://www.airfrance.com </a></font><br>
</p>
<hr align="left">
<font face="Verdana, Arial, Helvetica, sans-serif" size="1">Les données et renseignements contenus dans ce message peuvent être de nature confidentielle et soumis au secret professionnel et sont destinés à l'usage exclusif du destinataire dont les coordonnées
 figurent ci-dessus. Si vous recevez cette communication par erreur, nous vous demandons de ne pas la copier, l'utiliser ou la divulguer. Nous vous prions de notifier cette erreur à l'expéditeur et d'effacer immédiatement cette communication de votre système.
 Société Air France - Société anonyme au capital de 126 748 775 euros - RCS Bobigny (France) 420 495 178 - 45, rue de Paris, Tremblay-en-France, 95747 Roissy Charles de Gaulle CEDEX
<br>
<font color="#8C8B8B" face="Verdana, Arial, Helvetica, sans-serif" size="1">The data and information contained in this message may be confidential and subject to professional secrecy and are intended for the exclusive use of the recipient at the address shown
 above. If you receive this message by mistake, we ask you not to copy, use or disclose it. Please notify this error to the sender immediately and delete this message from your system. Société Air France - Limited company with capital of 126,748,775 euros -
 Bobigny register of companies (France) 420 495 178 - 45, rue de Paris, Tremblay-en-France, 95747 Roissy Charles de Gaulle CEDEX
<hr align="left">
</font><font color="#009900" face="Verdana, Arial, Helvetica, sans-serif" size="1">Pensez à l'environnement avant d'imprimer ce message.
<br>
Think of the environment before printing this mail.</font> </font>
</body>
</html>