<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Oui c'est ça, Sébastien nous a pointé
      vers l'article d'Ovid, et on a repris l'essentiel du code pour
      notre module.</div>
    <div class="moz-cite-prefix">Du coup on va maintenant mettre des
      signatures dans tous nos modules. :)<br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Stéphane</div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix"><br>
    </div>
    <div class="moz-cite-prefix">Le 06/07/2022 à 14:45, Kai Carver a
      écrit :<br>
    </div>
    <blockquote type="cite"
cite="mid:CAMjGNJg2QcYnVqwfaz1Mds1UK-TFCoRSujgp4oRbmtvwXvkOxw@mail.gmail.com">
      <div dir="ltr">Cool et merci de nous tenir au courant !
        <div><br>
        </div>
        <div>J'ai pas tout suivi mais apparemment vous vous êtes basés
          sur cet article par Ovid :</div>
        <div><br>
        </div>
        <blockquote>
          <div><span>I know that </span><code><span>Veure</span><span>::</span><span>Module</span></code><span> won't
              meet your exact needs, but the idea of building standards
              into a single module is worth the trouble. Combine that
              with </span><code><span>Perl</span><span>::</span><span>Critic</span></code><span> and </span><code><span>Perl</span><span>::</span><span>Tidy</span></code><span> and
              you're well on your way to reining in the headache of
              large codebases.</span></div>
        </blockquote>
        <div>
          <div><br>
          </div>
          <div><a
href="http://blogs.perl.org/users/ovid/2019/03/enforcing-simple-standards-with-one-module.html"
              target="_blank" moz-do-not-send="true"
              class="moz-txt-link-freetext">http://blogs.perl.org/users/ovid/2019/03/enforcing-simple-standards-with-one-module.html</a><br>
          </div>
        </div>
        <div><br>
        </div>
        <div>k</div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, 6 Jul 2022 at 13:51,
          Stéphane Gigandet &lt;<a href="mailto:biz@joueb.com"
            target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">biz@joueb.com</a>&gt; wrote:<br>
        </div>
        <blockquote class="gmail_quote">Hello,<br>
          <br>
          Suite à ce message, Sébastien Feugère (un grand merci à lui) a
          répondu <br>
          en commentaire dans l'issue sur GitHub, et il nous a pointé
          vers <br>
          Veure::Module.<br>
          <br>
          On a donc activé les signatures, avec un module pour remplacer
          le <br>
          Modern::Perl qu'on utilisait jusqu'alors pour le "boilerplate"
          :<br>
          <a
            href="https://github.com/openfoodfacts/openfoodfacts-server/pull/7009"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://github.com/openfoodfacts/openfoodfacts-server/pull/7009</a><br>
          <br>
          package ProductOpener::PerlStandards;<br>
          <br>
          use 5.24.0;<br>
          use strict;<br>
          use warnings;<br>
          use feature ();<br>
          use utf8;<br>
          <br>
          sub import {<br>
               warnings-&gt;import;<br>
               warnings-&gt;unimport('experimental::signatures');<br>
               strict-&gt;import;<br>
               feature-&gt;import(qw/signatures :5.24/);<br>
               utf8-&gt;import;<br>
          }<br>
          <br>
          sub unimport {<br>
               warnings-&gt;unimport;<br>
               strict-&gt;unimport;<br>
               feature-&gt;unimport;<br>
               utf8-&gt;unimport;<br>
          }<br>
          <br>
          1;<br>
          <br>
          Bonne après midi,<br>
          <br>
          Stéphane<br>
          <br>
          <br>
          Le 30/06/2022 à 10:08, Stéphane Gigandet a écrit :<br>
          &gt; Bonjour,<br>
          &gt;<br>
          &gt; Dans le code d'Open Food Facts, on a pris l'habitude
          d'utiliser les <br>
          &gt; prototypes des fonctions pour indiquer le nombre de
          paramètres attendus.<br>
          &gt;<br>
          &gt; Du genre :<br>
          &gt;<br>
          &gt; sub ma_fonction($$) {<br>
          &gt;<br>
          &gt;     my $param1 = shift;<br>
          &gt;<br>
          &gt;     my $param2 = shift;<br>
          &gt;<br>
          &gt; ..<br>
          &gt;<br>
          &gt; }<br>
          &gt;<br>
          &gt; C'est pratique car si j'appelle ma_fonction("un seul
          paramètre"), j'ai <br>
          &gt; une erreur à la compilation.<br>
          &gt;<br>
          &gt; Mais il y a plein de posts qui expliquent quel les
          prototypes en Perl <br>
          &gt; c'est mal et qu'il ne faut pas les utiliser comme ça. En
          pratique <br>
          &gt; aucune de nos fonctions n'est appelée avec des listes en
          paramètres, <br>
          &gt; seulement des scalar / des ref.<br>
          &gt;<br>
          &gt; On se pose la question de changer ces prototypes : les
          garder, les <br>
          &gt; enlever, les remplacer par les signatures <br>
          &gt; <a href="https://perldoc.pl/perlsub#Signatures"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://perldoc.pl/perlsub#Signatures</a>
          ?<br>
          &gt;<br>
          &gt; Le début de discussion est là : <br>
          &gt; <a
            href="https://github.com/openfoodfacts/openfoodfacts-server/issues/6956"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">https://github.com/openfoodfacts/openfoodfacts-server/issues/6956</a><br>
          &gt;<br>
          &gt; Je me demandais ce que vous faisiez dans vos projets ?<br>
          &gt;<br>
          &gt; Merci et bonne journée (sous la pluie ?),<br>
          &gt;<br>
          &gt; Stéphane<br>
          &gt;<br>
          &gt; _______________________________________________<br>
          &gt; Perl mailing list<br>
          &gt; <a href="mailto:Perl@mongueurs.net" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">Perl@mongueurs.net</a><br>
          &gt; <a
            href="http://listes.mongueurs.net/mailman/listinfo/perl"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">http://listes.mongueurs.net/mailman/listinfo/perl</a><br>
          &gt; Attention, les archives sont publiques<br>
          <br>
          <br>
          _______________________________________________<br>
          Perl mailing list<br>
          <a href="mailto:Perl@mongueurs.net" target="_blank"
            moz-do-not-send="true" class="moz-txt-link-freetext">Perl@mongueurs.net</a><br>
          <a href="http://listes.mongueurs.net/mailman/listinfo/perl"
            rel="noreferrer" target="_blank" moz-do-not-send="true"
            class="moz-txt-link-freetext">http://listes.mongueurs.net/mailman/listinfo/perl</a><br>
          Attention, les archives sont publiques<br>
        </blockquote>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></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>
    <p><br>
    </p>
  </body>
</html>