- Ouverture

L'ouverture consiste (le plus souvent) à associer un descripteur de fichier (filehandle) à un
fichier physique.
- 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).
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.
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 : $!";
|
 |