Chapitre 2. Applications aux routines

Nous voyons quelques exemples concrets.

Petite gymnastique

Nous montrons ici une application connue sous le nom de closure.

  1. Exemple 2-1. Appel de closure

        sub myprint {
            my $x = shift;
    	return sub { my $y = shift; print "$x, $y!\n"; };
        }
        $h = myprint("Salut!");
        $g = myprint("Perl ");
        # .........
     

    $h pointe sur le code:

        sub { my $y = shift; print "Salut!, $y!\n"; }
     
    $g pointe sur le code:
        sub { my $y = shift; print "Perl , $y!\n"; }
     
    Maintenant nous pouvons appeler nos routines, qui sont comme des modèles affectés à une tâche précise mais paramétrable:
        &$h("Monde nouveau!");
        &$g("bless objetcs.");
     
    ce qui imprimera les messages suivants:
        Salut! Monde nouveau!
        Perl bless objects.
     
    Les closures sont un peu délicates à saisir, mais cet effort sera payant pour une meilleure compréhension des objets.