<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    Bonsoir,<br>
    <br>
    Je viens de me rendre compte que j'avais lu la réponse mais que je
    n'avais pas remercié (c'est mal).<br>
    Alors merci (en retard) pour cette autre approche.<br>
    <br>
    Dans un monde parfait j'aurais sans doute appliqué cette technique
    mais hélas il y a "presque" tout le temps ":" pour séparer la clée
    de la valeur sauf à un endroit ce qui m'oblige à faire une sorte de
    "hook" pour re découper/ré assembler les bons morceaux de
    clee/valeur et ça m'a paru plus simple à partir du code proposé par
    Stéphane.<br>
    <br>
    Encore merci (en retard).<br>
    <br>
    Bonne soirée,<br>
    Nicolas, qui continue à faire du script perl.....<br>
    <br>
    <div class="moz-cite-prefix">Le 14/02/2020 à 15:38, Damien Krotkine
      a écrit :<br>
    </div>
    <blockquote type="cite"
      cite="mid:7fca8861-0273-43b4-be00-186915ee3979@www.fastmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <title></title>
      <style type="text/css">p.MsoNormal,p.MsoNoSpacing{margin:0}
p.MsoNormal,p.MsoNoSpacing{margin:0}</style>
      <div><br>
      </div>
      <div>Hello, une autre approche permet de le faire en une ligne:<br>
      </div>
      <div><br>
      </div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">my $result = `cat result`;<br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">my %values = grep length, split(/:
          +|  +|\n/, $result);<br>
        </span></div>
      <div><br>
      </div>
      <div>A lire de droite à gauche:<br>
      </div>
      <div>on applique <span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font">split(/: +|  +|\n/) </span>sur
        result. Cela va couper la longue chaine sur<br>
      </div>
      <div>- "deux-points suivis d'autant d'espace qu'on veut": pour
        séparer la clef à gauche du deux-points de la valeur qui est à
        droite<br>
      </div>
      <div>- "deux ou plus espaces": pour séparer entre deux
        "clefs-valeur" sur une même ligne<br>
      </div>
      <div>- "\n": pour séparer par ligne.<br>
      </div>
      <div><br>
      </div>
      <div>On applique un grep pour virer les lignes vides si jamais il
        y en a. Au final on a une liste de clef valeur qu'il suffit de
        stocker dans un hash. Le résultat:<br>
      </div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'VG DESCRIPTORS' =&gt;
          '2',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'FS SYNC OPTION' =&gt;
          'no',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'MAX LVs' =&gt; '256',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'FREE PPs' =&gt; '21 (2688
          megabytes)',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'MAX PPs per VG' =&gt;
          '32512',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'LTG size (Dynamic)' =&gt;
          '512 kilobyte(s)',</span><span style="font-family: menlo,
          consolas, monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'BB POLICY' =&gt;
          'relocatable',</span><span style="font-family: menlo,
          consolas, monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'PV RESTRICTION' =&gt;
          'none',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'OPEN LVs' =&gt; '22',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'VG PERMISSION' =&gt;
          'read/write',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'TOTAL PVs' =&gt; '1',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'AUTO ON' =&gt; 'yes',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'LVs' =&gt; '28',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'VG IDENTIFIER' =&gt;
          '00f702be00004c0000000159122168ad',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'ACTIVE PVs' =&gt; '1',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'DISK BLOCK SIZE' =&gt;
          '512',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'STALE PPs' =&gt; '0',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'QUORUM' =&gt; '2
          (Enabled)',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'USED PPs' =&gt; '778
          (99584 megabytes)',</span><span style="font-family: menlo,
          consolas, monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'MAX PVs' =&gt; '32',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'VOLUME GROUP' =&gt;
          'rootvg',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'PP SIZE' =&gt; '128
          megabyte(s)',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'MAX PPs per PV' =&gt;
          '1016',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'VG STATE' =&gt; 'active',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'TOTAL PPs' =&gt; '799
          (102272 megabytes)',</span><span style="font-family: menlo,
          consolas, monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'CRITICAL VG' =&gt; 'no',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'AUTO SYNC' =&gt; 'no',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'HOT SPARE' =&gt; 'no',</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'INFINITE RETRY' =&gt;
          'no',</span><span style="font-family: menlo, consolas,
          monospace, sans-serif;" class="font"><br>
        </span></div>
      <div><span style="font-family: menlo, consolas, monospace,
          sans-serif;" class="font">          'STALE PVs' =&gt; '0'</span><span
          style="font-family: menlo, consolas, monospace, sans-serif;"
          class="font"><br>
        </span></div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div><br>
      </div>
      <div>On Wed, Feb 12, 2020, at 08:38, Nicolas wrote:<br>
      </div>
      <blockquote id="qt" type="cite">
        <div>Bonjour Stéphane,<br>
        </div>
        <div><br>
        </div>
        <div>Oui il y a toujours plus d'une façon de faire en Perl ;)<br>
        </div>
        <div><br>
        </div>
        <div>Donc en fait la "clé" qui me manquait était l'analyse de la
          sortie "multiligne" de la commande en "une seule chaine" (et
          non comme "plusieurs lignes successives").<br>
        </div>
        <div>La regexp est donc construite pour matcher "autant de fois
          que possible" les "clé/valeur" tout au long de la chaine et
          non "une ou 2 fois par ligne", c'est ce qui me "manquait".<br>
        </div>
        <div><br>
        </div>
        <div>Merci pour ce petit coup de pouce un samedi à minuit ;)<br>
        </div>
        <div><br>
        </div>
        <div>Bonne journée,<br>
        </div>
        <div>Nicolas<br>
        </div>
        <div><br>
        </div>
        <div><br>
        </div>
        <div class="qt-moz-cite-prefix">Le 09/02/2020 à 12:46, Stéphane
          Gigandet a écrit :<br>
        </div>
        <blockquote type="cite"
          cite="mid:9412fd06-bc7d-ebfc-d09e-c5fbc842e0f8@joueb.com">
          <div class="qt-moz-cite-prefix">Bonjour Nicolas,<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Tu as tout analysé
            correctement. L'idée c'est de considérer ta sortie non pas
            comme une suite de lignes, mais comme une seule longue
            chaîne de caractères qui contient aussi des retours chariots
            \n. <br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Dans cette chaîne, la fin
            d'une valeur est suivie soit par plusieurs espaces (quand
            c'est la 1ère paire clé/valeur et qu'il y en a une 2ème plus
            à droite), soit par un retour chariot (quand c'est la
            dernière paire clé/valeur de la ligne).<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">C'est le but du (  |\n) : on
            arrête la valeur quand on a 2 espaces ou le retour chariot.<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">J'ai mis des parenthèses
            autour de (  |\n), c'est pour que le | s'applique sur les 2
            espaces ou le retour chariot. Ca va effectivement mettre ces
            2 espaces ou le retour chariot dans $3, qu'on n'utilise pas.
            Ce n'est pas gênant.<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Le /g permet de matcher
            plusieurs fois par chaîne, pas par ligne, on ne considère
            plus chaque ligne individuellement.<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">C'est une solution parmi plein
            d'autres possibles, c'est juste celle qui me paraissait la
            plus rapide à coder à minuit hier soir. :)<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Bonne journée,<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Stéphane<br>
          </div>
          <div class="qt-moz-cite-prefix"><br>
          </div>
          <div class="qt-moz-cite-prefix">Le 09/02/2020 à 02:41, Nicolas
            a écrit :<br>
          </div>
          <blockquote type="cite"
            cite="mid:eafc18d2-39c4-a15f-90c9-d711a2cd650a@escwq.fr">
            <div>Bonsoir Stéphane,<br>
            </div>
            <div><br>
            </div>
            <div>Merci pour ta proposition !<br>
            </div>
            <div>C'est effectivement sans doute la bonne approche au
              global, modulo que certaines lignes n'ont parfois qu'une
              seule "clée/valeur" suivant la config rencontrée (donc non
              prévisible).<br>
            </div>
            <div>Il semble que ta regexp "gère ça" mais je n'ai pas
              encore compris comment :/<br>
            </div>
            <div><br>
            </div>
            <div>Par contre j'aimerai quelques explications (ou une
              confirmation) sur ta regexp stp (j'aime bien comprendre
              ^_^ ).<br>
            </div>
            <div><span class="font" style="font-family:&quot;Courier
                New&quot;;">/\s*([^:]+):\s+(.*?)(  |\n)/g<br>
                /          0) Début de la regexp<br>
                \s*        1) Match 0 ou + "espace"<br>
                (          2) On commence la sélection =&gt; ce sera $1<br>
                [^:]+      3) On prend &lt;tous les caractères qui ne
                sont pas ':'&gt;<br>
                ):         4) On termine la sélection juste avant le
                premier ":"<br>
                                A ce stade on a "enlevé tous les espaces
                de début de ligne (1) et ensuite commencé la sélection
                (2) juste avant de prendre &lt;tout ce qui n'est pas
                ':'&gt; et on termine la sélection juste avant le
                premier ":" rencontré (4), car ":" c'est le séparateur
                de fin de clée.<br>
                \s+        5) Match 0 ou + "espace"<br>
                (          6) On commence la sélection =&gt; ce sera $2<br>
                .*?        7) On prend n'importe quel caractère en mode
                "non gourmand"<br>
                )          8) On termine la sélection<br>
                                A partir d'ici j'ai plus de mal à
                comprendre car je pense que ça doit débuter la sélection
                de $3, alors qu'on ne l'utilise pas après.<br>
                (          9) On commence la sélection =&gt; ce sera $3<br>
                  |\n     10) On prend "2x espace" ou "fin de ligne"<br>
                )         11) On termine la sélection<br>
                /g        12) Fin de la regex avec utilisation du flag
                "g" qui va matcher répétitivement.</span></div>
            <div>Je pense avoir correctement analysé le contenu mais pas
              le "but" de la regexp "dans son ensemble", en particulier
              les parties (9) et suivantes.<br>
            </div>
            <div>Je pense que le (10) sert à identifier une "fin de
              paire cle/valeur" avec les 2 espaces consécutifs ou la fin
              de ligne.<br>
            </div>
            <div>Le flag "g" va permettre de matcher "plusieurs fois"
              par ligne et donc les 2 couples "clé/valeur" par ligne,
              mais du coup comment perl "fait-il le job" en utilisant
              uniquement $1 et $2 dans le while et que devient $3 ?<br>
            </div>
            <div><br>
            </div>
            <div>En effet, pour une ligne avec 1x "clé/valeur", on va
              bien avoir :<br>
            </div>
            <div>    $1 = clé<br>
            </div>
            <div>    $2 = valeur<br>
            </div>
            <div>Mais pour une ligne avec 2x "clé/valeur", je
              m'attendrai à avoir :<br>
            </div>
            <div>    $1 = clé<br>
            </div>
            <div>    $2 = valeur<br>
            </div>
            <div>    $3 = clé<br>
            </div>
            <div>    $4 = valeur<br>
            </div>
            <div><br>
            </div>
            <div>Et là je me rend bien compte que j'ai loupé une
              subtilité :'(<br>
            </div>
            <div><br>
            </div>
            <div>A noter qu'il faut que je vérifie qu'il y ai toujours
              au moins "2 espaces" entre la fin de la "1ere Valeur" et
              le début de la "2eme clee".<br>
            </div>
            <div>Par contre je dois pouvoir utiliser un lettre
              "majuscule" (les CLEE sont presque exclusivement en
              majuscule) comme point de repère du début de la 2eme
              clée.... faut que je récupère d'avantage de "données brut"
              pour infirmer/confirmer.<br>
            </div>
            <div><br>
            </div>
            <div>@+<br>
            </div>
            <div>Nicolas<br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div><br>
            </div>
            <div class="qt-moz-cite-prefix">Le 09/02/2020 à 00:52,
              Stéphane Gigandet a écrit :<br>
            </div>
            <blockquote type="cite"
              cite="mid:e8661e8f-b974-6c56-b1ec-193758ef9810@joueb.com">
              <div>Hello Nicolas, <br>
              </div>
              <div><br>
              </div>
              <div>Comme la sortie est toujours de la forme "clé :
                valeur" (avec 2 paires clés / valeurs sur chaque ligne),
                le plus simple c'est peut être de parser toutes les clés
                en un coup, sans découper chaque ligne dans un tableau,
                avec un truc de ce genre là : <br>
              </div>
              <div><br>
              </div>
              <div>#!/usr/bin/perl -w <br>
              </div>
              <div><br>
              </div>
              <div>use strict; <br>
              </div>
              <div><br>
              </div>
              <div>my $result = `cat result`; <br>
              </div>
              <div><br>
              </div>
              <div>my %values = (); <br>
              </div>
              <div><br>
              </div>
              <div>while ($result =~ /\s*([^:]+):\s+(.*?)(  |\n)/g) { <br>
              </div>
              <div>        $values{$1} = $2; <br>
              </div>
              <div>} <br>
              </div>
              <div><br>
              </div>
              <div>foreach my $key (sort keys %values) { <br>
              </div>
              <div>        print "$key : $values{$key}\n"; <br>
              </div>
              <div>} <br>
              </div>
              <div><br>
              </div>
              <div>Ca donne ça : <br>
              </div>
              <div><br>
              </div>
              <div>ACTIVE PVs : 1 <br>
              </div>
              <div>AUTO ON : yes <br>
              </div>
              <div>AUTO SYNC : no <br>
              </div>
              <div>BB POLICY : relocatable <br>
              </div>
              <div>CRITICAL VG : no <br>
              </div>
              <div>DISK BLOCK SIZE : 512 <br>
              </div>
              <div>FREE PPs : 21 (2688 megabytes) <br>
              </div>
              <div>FS SYNC OPTION : no <br>
              </div>
              <div>HOT SPARE : no <br>
              </div>
              <div>INFINITE RETRY : no <br>
              </div>
              <div>LTG size (Dynamic) : 512 kilobyte(s) <br>
              </div>
              <div>LVs : 28 <br>
              </div>
              <div>MAX LVs : 256 <br>
              </div>
              <div>MAX PPs per PV : 1016 <br>
              </div>
              <div>MAX PPs per VG : 32512 <br>
              </div>
              <div>MAX PVs : 32 <br>
              </div>
              <div>OPEN LVs : 22 <br>
              </div>
              <div>PP SIZE : 128 megabyte(s) <br>
              </div>
              <div>PV RESTRICTION : none <br>
              </div>
              <div>QUORUM : 2 (Enabled) <br>
              </div>
              <div>STALE PPs : 0 <br>
              </div>
              <div>STALE PVs : 0 <br>
              </div>
              <div>TOTAL PPs : 799 (102272 megabytes) <br>
              </div>
              <div>TOTAL PVs : 1 <br>
              </div>
              <div>USED PPs : 778 (99584 megabytes) <br>
              </div>
              <div>VG DESCRIPTORS : 2 <br>
              </div>
              <div>VG IDENTIFIER : 00f702be00004c0000000159122168ad <br>
              </div>
              <div>VG PERMISSION : read/write <br>
              </div>
              <div>VG STATE : active <br>
              </div>
              <div>VOLUME GROUP : rootvg <br>
              </div>
              <div><br>
              </div>
              <div>Bon dimanche, <br>
              </div>
              <div><br>
              </div>
              <div>Stéphane <br>
              </div>
              <div><br>
              </div>
              <div>Le 08/02/2020 à 21:56, Nicolas a écrit : <br>
              </div>
              <div><br>
              </div>
              <blockquote type="cite">
                <div>Bonsoir, <br>
                </div>
                <div><br>
                </div>
                <div>Après de (trop) nombreuses années à ne pas faire
                  d'admin, je remets (laborieusement) les mains dans le
                  cambouis... et donc dans perl ;o) <br>
                </div>
                <div><br>
                </div>
                <div>Je n'ai jamais eu un niveau "gourou" en perl (même
                  il y a 15ans) mais j'arrive encore à écrire du code
                  qui me donne le résultat attendu.... alors ça me
                  convient ;o) <br>
                </div>
                <div>Mais du coup je vais peut-être avoir une question
                  "bête" concernant le traitement de la sortie d'une
                  commande. <br>
                </div>
                <div><br>
                </div>
                <div>La commande fournit une sortie sur STDOUT que je
                  stocke dans un tableau via : <br>
                </div>
                <div>my @array=split(/\n/,`ma_super_commande_UNIX`) or
                  die "error while processing command
                  \"ma_super_commande_UNIX\""; <br>
                </div>
                <div><br>
                </div>
                <div>Ensuite je fais une boucle pour parcourir le
                  tableau et appliquer la bonne regexp afin de récupérer
                  les parties "ah-hoc" de chaque ligne et les stocker
                  dans un hash avec les bonnes clés. <br>
                </div>
                <div><br>
                </div>
                <div>La boucle est de la forme : <br>
                </div>
                <div>foreach my $scalar (@array) <br>
                </div>
                <div>{ <br>
                </div>
                <div>  if ( $scalar =~ m/VG IDENTIFIER:\s+(\S+)/ ) <br>
                </div>
                <div>  { <br>
                </div>
                <div>    $hash{$stanza}{'VGid'}=$1; <br>
                </div>
                <div>  } <br>
                </div>
                <div>} <br>
                </div>
                <div><br>
                </div>
                <div>En répétant les "if" dans la boucle (un "if" par
                  ligne à traiter avec la regexp associée) je peux
                  matcher chaque ligne "qui va bien" par exécution de la
                  commande et ainsi récupérer les 2 valeurs par ligne
                  qui m'intéressent. <br>
                </div>
                <div><br>
                </div>
                <div>A la place du "if" j'ai essayé une notation de la
                  forme : <br>
                </div>
                <div>    ($hash{$stanza}{'VGid'}, )=( $scalar =~ m/VG
                  IDENTIFIER:\s+(\S+)/ ); <br>
                </div>
                <div><br>
                </div>
                <div>Mais ceci a pour seul résultat de bien matcher la
                  bonne ligne dans la boucle, mais au "tour suivant" de
                  la boucle (ligne suivante stockée dans @array) alors
                  la valeur est "mise à zéro", ceci sans doute car du
                  coup la regexp ne match pas ce qui est assez logique
                  puisque ce n'est plus la bonne ligne. <br>
                </div>
                <div>J'ai donc certainement loupé un truc quelque
                  part..... <br>
                </div>
                <div>Je peux bien entendu garder ma ribambelle de "if" à
                  l'intérieur de la boucle mais..... je pense qu'il y a
                  plus simple / plus perl et que je ne suis pas
                  loin..... :( <br>
                </div>
                <div><br>
                </div>
                <div>J'ai mis, un exemple de sortie de commande en fin
                  de mail, je récupère les 1 ou 2 valeurs par ligne pour
                  stocker la 30aine de valeurs dans un hash. <br>
                </div>
                <div><br>
                </div>
                <div>Bonne soirée, <br>
                </div>
                <div>Nicolas <br>
                </div>
                <div><br>
                </div>
                <div>VOLUME GROUP:       rootvg                   VG
                  IDENTIFIER: 00f702be00004c0000000159122168ad <br>
                </div>
                <div>VG STATE:           active                   PP
                  SIZE:        128 megabyte(s) <br>
                </div>
                <div>VG PERMISSION:      read/write               TOTAL
                  PPs:      799 (102272 megabytes) <br>
                </div>
                <div>MAX LVs:            256                      FREE
                  PPs:       21 (2688 megabytes) <br>
                </div>
                <div>LVs:                28                       USED
                  PPs:       778 (99584 megabytes) <br>
                </div>
                <div>OPEN LVs:           22                      
                  QUORUM:         2 (Enabled) <br>
                </div>
                <div>TOTAL PVs:          1                        VG
                  DESCRIPTORS: 2 <br>
                </div>
                <div>STALE PVs:          0                        STALE
                  PPs:      0 <br>
                </div>
                <div>ACTIVE PVs:         1                        AUTO
                  ON:        yes <br>
                </div>
                <div>MAX PPs per VG:     32512 <br>
                </div>
                <div>MAX PPs per PV:     1016                     MAX
                  PVs:        32 <br>
                </div>
                <div>LTG size (Dynamic): 512 kilobyte(s)          AUTO
                  SYNC:      no <br>
                </div>
                <div>HOT SPARE:          no                       BB
                  POLICY: relocatable <br>
                </div>
                <div>PV RESTRICTION:     none                    
                  INFINITE RETRY: no <br>
                </div>
                <div>DISK BLOCK SIZE:    512                     
                  CRITICAL VG:    no <br>
                </div>
                <div>FS SYNC OPTION:     no <br>
                </div>
                <div><br>
                </div>
                <div><br>
                </div>
                <div>_______________________________________________ <br>
                </div>
                <div>Perl mailing list <br>
                </div>
                <div><a class="qt-moz-txt-link-abbreviated"
                    href="mailto:Perl@mongueurs.net"
                    moz-do-not-send="true">Perl@mongueurs.net</a> <br>
                </div>
                <div><a class="qt-moz-txt-link-freetext"
                    href="http://listes.mongueurs.net/mailman/listinfo/perl"
                    moz-do-not-send="true">http://listes.mongueurs.net/mailman/listinfo/perl</a>
                  <br>
                </div>
                <div>Attention, les archives sont publiques <br>
                </div>
              </blockquote>
              <div><br>
              </div>
              <div><br>
              </div>
              <div>_______________________________________________<br>
              </div>
              <div>Perl mailing list <br>
              </div>
              <div><a class="qt-moz-txt-link-abbreviated"
                  href="mailto:Perl@mongueurs.net"
                  moz-do-not-send="true">Perl@mongueurs.net</a> <br>
              </div>
              <div><a class="qt-moz-txt-link-freetext"
                  href="http://listes.mongueurs.net/mailman/listinfo/perl"
                  moz-do-not-send="true">http://listes.mongueurs.net/mailman/listinfo/perl</a>
                <br>
              </div>
              <div>Attention, les archives sont publiques <br>
              </div>
            </blockquote>
            <div><br>
            </div>
            <div><br>
            </div>
            <pre class="qt-moz-quote-pre" wrap="">_______________________________________________
Perl mailing list
<a class="qt-moz-txt-link-abbreviated" href="mailto:Perl@mongueurs.net" moz-do-not-send="true">Perl@mongueurs.net</a>
<a class="qt-moz-txt-link-freetext" href="http://listes.mongueurs.net/mailman/listinfo/perl" moz-do-not-send="true">http://listes.mongueurs.net/mailman/listinfo/perl</a>
Attention, les archives sont publiques
</pre>
          </blockquote>
          <p><br>
          </p>
          <div><br>
          </div>
          <pre class="qt-moz-quote-pre" wrap="">_______________________________________________
Perl mailing list
<a class="qt-moz-txt-link-abbreviated" href="mailto:Perl@mongueurs.net" moz-do-not-send="true">Perl@mongueurs.net</a>
<a class="qt-moz-txt-link-freetext" href="http://listes.mongueurs.net/mailman/listinfo/perl" moz-do-not-send="true">http://listes.mongueurs.net/mailman/listinfo/perl</a>
Attention, les archives sont publiques
</pre>
        </blockquote>
        <div><br>
        </div>
        <div>_______________________________________________<br>
        </div>
        <div>Perl mailing list<br>
        </div>
        <div><a class="moz-txt-link-abbreviated" href="mailto:Perl@mongueurs.net">Perl@mongueurs.net</a><br>
        </div>
        <div><a class="moz-txt-link-freetext" href="http://listes.mongueurs.net/mailman/listinfo/perl">http://listes.mongueurs.net/mailman/listinfo/perl</a><br>
        </div>
        <div>Attention, les archives sont publiques<br>
        </div>
      </blockquote>
      <div><br>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
Perl mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Perl@mongueurs.net">Perl@mongueurs.net</a>
<a class="moz-txt-link-freetext" href="http://listes.mongueurs.net/mailman/listinfo/perl">http://listes.mongueurs.net/mailman/listinfo/perl</a>
Attention, les archives sont publiques</pre>
    </blockquote>
    <br>
  </body>
</html>