[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