FTLS.org 
Francais     English
 
 
Accueil
 
 Linux
Introduction
Liens
 
 Initiation
Internet
HTML
CGI
Perl
 
 Archives
Java
Perl Tools
Scripts CGI
Scripts PHP
 
 Calculatrices
HP 48
TI 92
 
 Gratuit du Net
A Gratuit
Comparatifs
Se divertir
 
 Aide Webmasters
Trucs & Astuces
JavaScript
 
 Site
Partenaires
Contact
 
 Powered by
linux
 

Initiation


Initiation au Perl



4. Les Variables et Types de données

    Perl a trois structures de données : les scalaires, les tableaux de scalaires, et les tableaux associatifs de scalaires, appelés ``hachages''.

    4.1 Les noms de variables

        Comme dans tous les langages, des règles précises doivent être suivies dans la sélection des noms de variables :

        - Un nom de variable est toujours précédé par $ (pour désigner un scalaire ou une référence à un élément de tableau), @ (pour désigner un tableaux complet), % (pour désigner un hachages) ou & (pour désigner les appels de sous programmes).

        - Un nom de variable peut être composé de lettres minuscules ou majuscules. Par contre, le langage est sensible à la casse, ce qui signifie que $Nom, $nom et $NOM sont toutes des variables différentes;

        - Un identifiant peut contenir un caractère numérique. Par exemple, il est possible d'avoir un nom de variable tel $nom2;

        - Finalement, le caractère de soulignement (_) est permis. Aussi, on peut définir des variables comme $nombre_de_jours.

        L'affectation, se fait en général grâce à l'opérateur '='
        $jours = "Lundi";                # Affecte à la variable $jours la chaîne Lundi.
        @jours = ("Lun", "Mar", "Mer")    # Affecte au tableau @jours les chaînes "Lun" "Mar"...

    4.2 Les scalaires

        Perl est un langage contextuellement polymorphe, on n'a pas besoin de définir le type d'une variable, les variables scalaires peuvent contenir des formes variées de données singulières, comme des nombres, des chaînes, et des références. La conversion d'une forme à l'autre est en général transparente.
        Les valeurs scalaires sont toujours désignées par un '$', même si l'on se réfère à un scalaire qui fait partie d'un tableau.

    Exemple :

    $a = 1;
    $b = $a + 1; implique $b = 2
    mais
    $a = "1"; # La chaîne de caractères 1
    $b = $a + 1; implique $b = 2
    Cela peut surprendre au début, mais s'avère très pratique...


        Il n'existe pas non plus de type "booléen", une valeur scalaire est interprétée comme VRAIE (TRUE) si ce n'est pas une chaîne vide ou le nombre 0 (ou sous équivalent sous forme de chaîne, ``0'').

      4.2.1 Les numériques :

          Il existe plusieurs format de type numérique, la conversion est aussi transparente dans le sans entier -> flottant court -> flottant long... dans le sens inverse, il faut les caster, mais nous verront cela dans la suite du ce tutorial.

      Exemples de numériques :

      2345
      12345.67
      .23E-10
      0xffff # hexa
      0377 # octal

      4.2.2 Les chaîne de caractères

          Nous avons vu précédemment qu'il était possible d'assigner une chaîne de caractères à une variable. Mais il existe plusieurs façons d'affecter ce type de valeur.
          Avec des apostrophes :
          Lorsqu'un texte est donné entre apostrophes (' ') à une variable, il est affecté tel quel, les variables contenues ne sont donc pas interprétées.

          Avec des guillemets :
          Les guillemets fonctionnent de la même façon que les apostrophes, sauf qu'ils permettent la résolution de variables internes.

          Avec des accents graves :
          Les accents graves (` `) permettent l'exécution de la commande qu'ils délimitent et remplacent l'espace occupé par la valeur de retour ainsi obtenue.

          Avec citation orientée ligne << :
          Les citations orientées ( <<) permettent de définir une chaîne de caractères sur plusieurs lignes et pouvant contenir des simples ou des doubles cotes ( ' ou "). Après un << vous spécifiez une chaîne pour terminer le matériel cité, et toutes les lignes qui suivent la ligne courante jusqu'à la chaîne de terminaison forment la valeur de l'élément. Exemple :

      #!/usr/bin/perl

      $prenom = 'Patric';
      print $prenom;
      # Affiche Patric

      print '$prenom\n';
      # Affiche $prenom\n

      print "$prenom\n";
      # Affiche Patric\n

      $repertoire_courant = `pwd`;
      print $repertoire_courant;


      $prenom = <<EOF;
      Maligne 1
      Maligne 2
      EOF
      print $prenom;

      4.2.2.1 Les caractères spéciaux

          En Perl comme dans d'autre langage, il existe une série de caractères particuliers qui sont interprétées comme le montre le tableau suivant :

      \t    tabulation
      \n    nouvelle ligne
      \r    retour ligne
      \f    form feed
      \v    tabulation verticale
      \b    retour arrière
      \a    beep
      \e    escape
      \0dd caractère octal
      \xdd caractère hexadécimal
      \cx caractère de contrôle
      \l    force le caractère suivant en minuscule
      \u    force le caractère suivant en majuscule
      \L    force la suite en minuscules jusqu'au caractère \E
      \U    force la suite en majuscule jusqu'aux caractères \E
      \Q    force la suite jusqu'à \E à être interprétée en expression régulière
      \E    marque de fin de minuscule/majuscule/quote
      \\    empêche l'analyse de \

    4.3 Les Listes

        Une liste est une série de variables scalaires. L'avantage de la liste est que l'espace mémoire requis pour emmagasiner l'information est allouée dynamiquement et libérée dès la fin de l'utilisation. Aussi, il n'y a pas de perte de ressources inutile par la réservation de mémoires qui ne seront jamais réutilisées.

        Exemple :
            print ("toto1\n", "toto2\n");

    4.4 Les tableaux

        Un tableau est en fait une liste réutilisable, c'est-à-dire qui reste accessible en mémoire pendant toute l'exécution du programme. Les tableaux autorisent un accès indexé par des entiers {0,1,2,3,...}. Le premier élément de @jours est $jours[0], le second est $jours[1] et ainsi de suite.
        Deux symboles importants sont à considérer en ce qui concerne les tableaux :

    @ (le symbole "at") :
    Ce symbole réfère au tableau ou une tranches de tableau.

    $ (le signe dollars) :
    Utilisé avec les crochets ([]), il permet d'accéder à un élément particulier du tableau (le premier étant toujours 0).


    Exemple :
    @jours = ("Lun", "Mar", "Mer", "Jeu", "Ven", "Sam", "Dim");
    # Défini le taleau jour.


    @WeekEnd = @jours[5,6];
    # Affect a tableau @weekEnd ("Sam", "Dim")


    print $jours[0]."\n";
    # Affiche Lun.
    print $WeekEnd[0]."\n";
    # Affiche "Sam"


    Note:
        La variable $#nom_tableau ; donne l'indice du dernier élément du tableau (@nom_tableau). Le premier indice du tableau est 0. Le nombre d'éléments d'un tableau est donc $#nom_tableau+1;

    4.5 Les tableaux associatifs

        Les tableaux associatifs, aussi appelés table de ``hachages'' sont accessibles via une clé autre qu'un chiffre représentant leur index. Dans cette optique, chacune des données d'un tableau associatif est représentée par une combinaison clé/valeur.
        Deux symboles importants sont à considérer en ce qui concerne les tableaux :

        % (le symbole de pour cent) :
            Ce symbole réfère au tableau entier. Par exemple, %jours spécifie tout le tableau jours.
        {} (les braquettes) :
            Serve à indiquer une clé. Par exemple, $jours{"Lu"} définit une clé nommée Lu.

    Exemple:

    %jours = ("Lu", "Lundi",    # Définition du tableau associatif %jours
        "Ma", "Mardi",
        "Me", "Mercredi",
        "Je", "Jeudi",
        "Ve", "Vendredi",
        "Sa", "Samedi",
        "De", "Dimanche");


    print "$jours{'Ma'}\n";
    # Affiche Mardi


        Il est a note que l'affectation d'un associatif associatif peut ce faire de la façon suivant :
    %jours = ("Lu" => "Lundi",    # Définition du tableau associatif %jours
        "Ma" => "Mardi",
        "Me" => "Mercredi",
        "Je" => "Jeudi",
        "Ve" => "Vendredi",
        "Sa" => "Samedi",
        "De" => "Dimanche");

    4.6 Les variables spéciales

        En Perl il existe un certain nombre de variables spéciales. La plupart des noms ont un mnémonique acceptable, ou équivalent dans un des shells. Néanmoins si vous souhaitez utiliser des descripteurs longs vous avez juste à utiliser use English;.

        Voir la liste (externe)



 
© Copyright 2000 FTLS (Tyndiuk Frédéric). All rights reserved.
Last Update 08/03/2000 - Send all comments to webmaster@ftls.org