<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 style="margin:0 0 0 40px;border:none;padding:0px"><div><span style="color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px">I know that </span><code style="margin:0px;padding:2px;border:0px;font-size:14px;vertical-align:baseline;color:rgb(51,51,51)"><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Veure</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,0)">::</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Module</span></code><span style="color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px"> 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 style="margin:0px;padding:2px;border:0px;font-size:14px;vertical-align:baseline;color:rgb(51,51,51)"><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Perl</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,0)">::</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Critic</span></code><span style="color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px"> and </span><code style="margin:0px;padding:2px;border:0px;font-size:14px;vertical-align:baseline;color:rgb(51,51,51)"><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Perl</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(0,0,0)">::</span><span style="margin:0px;padding:0px;border:0px;vertical-align:baseline;color:rgb(204,68,0)">Tidy</span></code><span style="color:rgb(51,51,51);font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px"> 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">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 <<a href="mailto:biz@joueb.com" target="_blank">biz@joueb.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">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">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->import;<br>
warnings->unimport('experimental::signatures');<br>
strict->import;<br>
feature->import(qw/signatures :5.24/);<br>
utf8->import;<br>
}<br>
<br>
sub unimport {<br>
warnings->unimport;<br>
strict->unimport;<br>
feature->unimport;<br>
utf8->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>
> Bonjour,<br>
><br>
> Dans le code d'Open Food Facts, on a pris l'habitude d'utiliser les <br>
> prototypes des fonctions pour indiquer le nombre de paramètres attendus.<br>
><br>
> Du genre :<br>
><br>
> sub ma_fonction($$) {<br>
><br>
> my $param1 = shift;<br>
><br>
> my $param2 = shift;<br>
><br>
> ..<br>
><br>
> }<br>
><br>
> C'est pratique car si j'appelle ma_fonction("un seul paramètre"), j'ai <br>
> une erreur à la compilation.<br>
><br>
> Mais il y a plein de posts qui expliquent quel les prototypes en Perl <br>
> c'est mal et qu'il ne faut pas les utiliser comme ça. En pratique <br>
> aucune de nos fonctions n'est appelée avec des listes en paramètres, <br>
> seulement des scalar / des ref.<br>
><br>
> On se pose la question de changer ces prototypes : les garder, les <br>
> enlever, les remplacer par les signatures <br>
> <a href="https://perldoc.pl/perlsub#Signatures" rel="noreferrer" target="_blank">https://perldoc.pl/perlsub#Signatures</a> ?<br>
><br>
> Le début de discussion est là : <br>
> <a href="https://github.com/openfoodfacts/openfoodfacts-server/issues/6956" rel="noreferrer" target="_blank">https://github.com/openfoodfacts/openfoodfacts-server/issues/6956</a><br>
><br>
> Je me demandais ce que vous faisiez dans vos projets ?<br>
><br>
> Merci et bonne journée (sous la pluie ?),<br>
><br>
> Stéphane<br>
><br>
> _______________________________________________<br>
> Perl mailing list<br>
> <a href="mailto:Perl@mongueurs.net" target="_blank">Perl@mongueurs.net</a><br>
> <a href="http://listes.mongueurs.net/mailman/listinfo/perl" rel="noreferrer" target="_blank">http://listes.mongueurs.net/mailman/listinfo/perl</a><br>
> Attention, les archives sont publiques<br>
<br>
<br>
_______________________________________________<br>
Perl mailing list<br>
<a href="mailto:Perl@mongueurs.net" target="_blank">Perl@mongueurs.net</a><br>
<a href="http://listes.mongueurs.net/mailman/listinfo/perl" rel="noreferrer" target="_blank">http://listes.mongueurs.net/mailman/listinfo/perl</a><br>
Attention, les archives sont publiques<br>
</blockquote></div>