[Perl] Prototypes et signatures

Stéphane Gigandet biz at joueb.com
Mer 6 Juil 16:54:56 CEST 2022


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.
Du coup on va maintenant mettre des signatures dans tous nos modules. :)

Stéphane


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

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/archives/perl/attachments/20220706/b15a753c/attachment-0001.html>


Plus d'informations sur la liste de diffusion Perl