La voix du secrétaire (Jean)
Présents à la réunion, en fonction de l'ordre d'arrivée approximatif
Nous avons mangé des œufs mayonnaise, des cheeseburgers, des blue-cheeseburgers, des magrets de canard, des rumsteaks, des spaghetti bolognaise, des dames blanches et une tarte aux pommes. Malgré une longue négociation, nous n'avons pas pu avoir des nègres en chemise, car il n'y a plus de meringue à la Taverne. Nous avons bu de la Kriek, de la Beamish Red, de la blanche, d'autres bières, du Pepsi et deux margaritas (je ne suis plus seul !).
Nous avons parlé de Perl, d'Internet d'informatique et d'autres sujets.
sub formattage_texte { my ($param_ref) = @_; my $l = $param_ref->{longueur}; my $h = $param_ref->{hauteur}; # etc } formattage_texte( { longueur => 80, hauteur => 60, police => 'Computer Modern' } );
#!/usr/bin/perl use strict; use warnings; sub examine_param { my ($premier_prm, $deuxieme_prm, $troisieme_prm) = @_; my $cpt = 0; foreach my $i (0 .. $#_) { if (defined $_[$i]) { print "paramètre $i = $_[$i]\n"; } elsif (exists $_[$i]) { print "paramètre $i indéfini\n"; } else { print "paramètre $i inexistant\n"; } } } my @tableau; $tableau[1] = 'a'; $tableau[3] = undef; # et inexistant aux indices 0 et 2 examine_param(@tableau);ce qui donne le résultat suivant :
paramètre 0 inexistant paramètre 1 = a paramètre 2 inexistant paramètre 3 indéfiniLa distinction entre le test d'existence et le test de définition sur les valeurs de hachage existe au moins depuis que je fais du Perl (1998). Pour les tableaux, c'est un peu plus récent, la version 5.6.0 si je me souviens bien, mais ça fonctionne. Le programme ci-dessus a été testé en 5.8.6. Si l'on tient à faire la distinction entre les paramètres indéfinis et les paramètres inexistants, il faut le faire avec le tableau @_. Si l'on recopie les paramètres dans des variables lexicales :
my ($premier_prm, $deuxieme_prm, $troisieme_prm) = @_;les valeurs inexistantes sont converties en valeurs indéfinies dans les variables scalaires.