Section courante

Section administrative du site

SUB

Sous-routine
Perl
 

Syntaxe

sub NAME;
sub NAME(PROTO);
sub NAME : ATTRS;
sub NAME(PROTO) : ATTRS;
sub NAME BLOCK
sub NAME(PROTO) BLOCK
sub NAME : ATTRS BLOCK
sub NAME(PROTO) : ATTRS BLOCK
$subref = sub BLOCK;
$subref = sub (PROTO) BLOCK;
$subref = sub : ATTRS BLOCK;
$subref = sub (PROTO) : ATTRS BLOCK;

Paramètres

Nom Description
NAME Ce paramètre permet d'indiquer le nom de la sous-routine.
PROTO Ce paramètre permet d'indiquer les paramètres de la sous-routine.
BLOCK Ce paramètre permet d'indiquer les instructions de la sous-routine.
ATTRS Ce paramètre permet d'indiquer les attributs de la sous-routine.
$subref Ce paramètre permet d'indiquer les données retournés par la fonction.

Description

Cette fonction permet de déclarer une sous-routine, c'est-à-dire une fonction ou une procédure.

Exemples

Voici un exemple typique d'utilisation de cette fonction :

  1. #!/usr/bin/perl
  2.  
  3. sub mafonction() {
  4.  print "Fonction sans retour de valeur !";
  5. }
  6.  
  7. &mafonction;

on obtiendra un résultat semblable à celui-ci :

Fonction sans retour de valeur !

Voici un exemple d'une fonction de moyenne permettant de passer un nombre variable de paramètres :

  1. #!/usr/bin/perl
  2.  
  3. use strict;
  4.  
  5. sub moyenne(@) {
  6.     my $somme = 0;
  7.     my @in = @_;
  8.     foreach(@in) {
  9.          $somme += $_;
  10.     }
  11.     my $nombreElement = @in;
  12.     return $somme / $nombreElement;
  13. }
  14.  
  15. print "moyenne(37, 45) = " . moyenne(37, 45) . "\n";
  16. print "moyenne(100, 200, 300) = " . moyenne(100, 200, 300) . "\n";
  17. print "moyenne(100, 50, 25, 75) = " . moyenne(100, 50, 25, 75) . "\n";

on obtiendra un résultat semblable à celui-ci :

moyenne(37, 45) = 41
moyenne(100, 200, 300) = 200
moyenne(100, 50, 25, 75) = 62.5

Références

La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1077

Dernière mise à jour : Dimanche, le 18 octobre 2015