Dans le langage Perl, la façon d'écrire une procédure et une fonction est vraiment semblable. On constate que la fonction prennent l'apparence d'une procédure!
Procédure
Voici tout d'abord la syntaxe d'une procédure :
sub nomdeprocédure() { my (paramètres) = @_; instruction_exécuté1; instruction_exécuté2; instruction_exécuté3; ... } |
N.B. Il est a noter qu'il n'est pas nécessaire d'indiquer les paramètres.
Fonction
La fonction de son côté nécessite l'utilisation d'au moins un mot réservé «return» contenu dans le corps de la routine. Il n'y a pas de position obligatoire n'y de nombre limite d'utilisation de l'instruction «return». Voici sa syntaxe :
sub nomdefonction() { my (paramètres) = @_; instruction_exécuté1; ...; return valeurderetour; } |
N.B. Il est a noter qu'il n'est pas nécessaire d'indiquer les paramètres.
Appel de fonction ou de procédure
Peu importe que vous appelez une fonction ou une procédure, vous devez dans les deux cas écrire un symbole Et avant la procédure ou la fonction à appeler. Voici sa syntaxe :
&nomdefonction(paramètres) |
ou
&nomdeprocédure(paramètres) |
Passage par paramètre d'un tableau associatif à une fonction ou une procédure
La technique afin d'arriver à se résultat ressemble un peu au langage C, il faut donc passé par référence un tableau avec un pointeur au moment de l'appel de la procédure ou fonction. Voici sa syntaxe habituel :
sub nomdefonction($) { my ($tableauassociatif) = @_; traitement $tableauassociatif->{"champs"}; } my (%tableauassociatif); $tableauassociatif{'champs'} = "valeur du champs"; &nomdefonction(\%tableauassociatif); |
Exemple
Voici un exemple d'une utilisation typique de l'instruction «sub» :
- #!/usr/bin/perl
-
- sub mafonction() {
- print "Fonction sans retour de valeur !";
- }
-
- &mafonction;
on obtiendra le résultat suivant :
Fonction sans retour de valeur !