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.
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 :
#
en début de ligne
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.
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;