sub monprint { print $_[0], "\n" }
monprint ($seq);
Une fonction est une procédure qui retourne une valeur
(résultat d'un calcul, vrai ou faux, etc..)
sub pluriel { $s = $_[0]."s"; return ($s); }
Contrairement à notre attente, le programme suivant imprime
"portes, portes" (et non pas "porte, portes").
$a = "porte"; $b = pluriel ($a); print "$a, $b \n"; sub pluriel { $a = $_[0]."s"; return ($a); }
La raison est que les variables employées dans les procédures sont des variables GLOBALES (ici $a). C'est à dire que si elles sont modifiées dans la procédure, elle le sont aussi dans la programme principal.
Pour ne pas modifier les variables par inadvertance, il faut
les déclarer dans la procédure comme LOCALES,
avec l'instruction "My":
sub pluriel { my $a; $a = $_[0]."s"; return ($a); }
Employée dans le programme ci-dessus, cette procédure affichera le résultat escompté ("porte, portes").