1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42

DESS TIMH


VII.Gestion defichiers

Introduction au langage Perl

  1. Ouverture

    L'ouverture consiste (le plus souvent) à associer un descripteur de fichier (filehandle) à un
    fichier physique.
  1. en lecture

    open (FENT, 'fichier');ouverture d'un fichier, référencé ensuite parFENT.
    open(FENT, 'fruits.txt');


open (COM, 'commande|');ouverture d'une commande dont le résultat sera dans COM


open (FDESS, 'ls /users/dess |'); (uniquement sur Unix)


Un fichier spécial: STDIN, le clavier (entrée standard).

  1. en écriture

    open (FSOR, '> fichier');Ecriture du fichier, si ce fichier existait auparavant :
    l'ancien contenu est écrasé.
    open(FSOR, '> etat.txt');


open (FSOR,'>>fichier');Ecriture à la fin du fichier, Le fichier est créé si besoin
open (FSOR, '>> liste.txt');
open (FSOR, '
| commande');Le fichier de sortie sera en fait l'entrée
standard de la commande
open(FTRIE, '| lpr');=> La sortie sera imprimée
open (FMAIL, '| mail -s "Bonjour" lim\@univ-rennes1.fr');

Deux fichiers spéciaux: STDOUT, STDERR (respectivement: sortie standard, et sortie erreur),
par défaut l'écran.

  1. Gestion des erreurs (||)

    Lorsque l'on ouvre un fichier il se peut qu'il y ait une erreur.
    En lecture : le fichier n'existe pas, ou ne peut pas être lu (droits d'accès)...
    En écriture : Le fichier existe mais on n'a pas le droit d'écrire dessus, pour une commande Unix :
    la commande est inconnue...

Il faut prendre l'habitude, quand on ouvre un fichier, de détecter l'erreur éventuelle.
On peut le faire sous la forme suivante : (dérivée du C)
if (! open (F, ...)) {
die "Problème à l'ouverture du fichier";
}

Ou sous la forme plus simple et plus usitée en Perl :
open (F, ...) || die "Pb d'ouverture";

On peut, et c'est même conseillé, récupérer le texte de l'erreur contenu dans la variable $!
open (F, ...) || die "Pb d'ouverture : $!";

http://www.med.univ-rennes1.fr/~poulique/cours/perl/

Page 17

[CONVERTED BY MYRMIDON]