next up previous contents index
suivant: 9. Fonctions avancées monter: perl précédent: 7. Le format de   Table des matières   Index

Sous-sections


8. Les formats

perl a été à l'origine conçu pour manipuler du texte et produire des rapports. Il offre donc un outil permettant de formatter ces rapports facilement : les formats.

Les formats sont déclarés à n'importe quel endroit du fichier. Étant donné que perl fait une précompilation du script avant de l'exécuter, il n'est pas indispensable de les déclarer avant de les utiliser.

8.1 Syntaxe

On les déclare de la manière suivante (en les terminant par un point seul sur une ligne) :

format NAME =
FORMALIST
.

NAME est le nom associé au format. Par défaut, si un filehandle est défini avec le même nom, ce sera ce format qui sera utilisé.

Le format NAME_TOP sera affiché à chaque début de page s'il est défini.

FORMLIST est une séquence de lignes qui peuvent être de trois types :

Les lignes images sont imprimées telles quelles, après substitution des champs d'interpolation.

Le tableau 8.1 résume les différents types de champs d'interpolation.


Tableau 8.1: Champs d'interpolation
@<<<< champ aligné à gauche
@|||| champ centré
@>>>> champ aligné à droite
@#### champ numérique (aligné à droite)
@#.## champ numérique avec décimale
@* champ multiligne


8.2 Utilisation

La fonction write envoie le format approprié sur le filehandle spécifié (STDOUT par défaut).

Voilà un exemple d'utilisation :

format STDOUT =
Nom : @<<<<<<<<<<<<    Prenom : @<<<<<<<<<<<<<
$nom, $prenom
Age : @###
$age
.

format STDOUT_TOP =
       Fiche de renseignement

.

while (&next_record)
# next_record affecte les variables $nom, $prenom, $age
{
   write ;
}

Pour préciser un nom de format différent de celui du filehandle, il faut fixer la variable $~, ou bien utiliser le module FileHandle :

use FileHandle;

format TABLE =
Nom : @<<<<<<<<< Prenom : @>>>>>>>>>>>
.

format_name STDOUT TABLE;
# équivalent (mais plus lisible) à
# select (STDOUT);
# $~ = TABLE;


next up previous contents index
suivant: 9. Fonctions avancées monter: perl précédent: 7. Le format de   Table des matières   Index
Olivier Aubert 2000-06-28