• # Prototypes et signatures

    Posté par . En réponse à la dépêche Sortie de Perl 5.30.0. Évalué à 4.

    J'aime beaucoup Perl mais je lui reproche souvent la manière dont sont passés les arguments des sous-routines.
    En effet, je me retrouve souvent à écrire beaucoup de code pour gérer les arguments des sous-routines plutôt que le code de la sous-routine en elle-même :

    sub f{
     my $arg_ref;
     my $a;
     my $b;
     $arg_ref = shift @_ or croak 'Must provide one argument (a reference to an hash).';
     if(not defined reftype $arg_ref or reftype $arg_ref ne reftype {}){
     croak 'The argument must be an hash reference.';
     }
     $a = $arg_ref->{a} or croak 'Field a is empty';
     $b = $arg_ref->{b} or croak 'Field b is empty';
     # Code de la sous-routine.
    }

    J'aimerai donc signer mes sous-routines mais ce n'est pas forcément recommandé.
    Est-ce que les signatures sont désormais mieux prises en charge ?