[Perl] Prototypes et signatures

Kai Carver kai.carver at gmail.com
Mer 6 Juil 14:45:39 CEST 2022


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
>
-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <http://listes.mongueurs.net/archives/perl/attachments/20220706/4350f0fd/attachment.html>


Plus d'informations sur la liste de diffusion Perl