Une méthode

Une méthode est une routine dont le premier paramètre doit être une référence à un objet. Ce peut être aussi le nom d'un package pour une méthode de classe. Reprenons l'exemple de la classe 'Doc' et voyons comment décrire sa classe, ou son package:

Exemple 4-2. Le package Doc


    package Doc;
    
    # le contructeur
    #---------------
    sub new {
        my $self = { };
	$self->{TITLE}    = undef;
	$self->{BOOKINFO} = undef;
	$self->{CHAPTER}  = Chapter->new;

	bless( $self );
	return $self;
    }

    # méthodes d'objets
    #------------------
    sub title {
        my $self = shift;                   # référence de l'objet
	if( @_ ){ $self->{TITLE} = shift }  # si on a un paramètre il est affecté à la clé 'TITLE'
	        return $self->{TITLE};      # sinon la méthode renvoie
		                            # la valeur de cette clé
 

La méthode title avec comme argument (le titre) instancie la valeur de la clé 'TITLE' à la valeur de cet argument. S'il n'y à pas d'argument, elle retourne cette valeur.

Appellons le constructeur ainsi créé:

    
    $myDoc = Doc->new( );                     # new est une méthode de classe
    $myDoc->title( "Perl et les Objets" );    # title est une méthode
                                              # objet : il faut déréférencer l'objet $myDoc
					      # pour atteindre sa variable locale