EOF |
Fin de fichier |
|---|---|
Perl |
Syntaxe
| eof |
| eof() |
| eof filehandle |
Paramètres
| Nom | Description |
|---|---|
| filehandle | Ce paramètre permet d'indiquer l'identificateur de descripteur de fichier |
Retour
| Valeur | Description |
|---|---|
| undef | Cette valeur permet d'indiquer que l'identificateur de fichier n'existe pas. |
| 1 | Cette valeur permet d'indiquer que la fin du fichier est atteinte. |
Description
Cette fonction permet d'indiquer si la fin du fichier est atteinte.
Remarques
- Fonction utilisée pour contrôler la lecture d'un fichier : La fonction eof permet de savoir si la lecture d'un fichier a atteint sa fin. C'est un outil de contrôle courant dans les boucles de lecture (while, until), permettant de détecter qu'il n'y a plus de contenu à lire dans le fichier associé à un descripteur.
- Accepte plusieurs syntaxes selon le contexte d'utilisation : eof peut être utilisée sans paramètre (elle utilise alors le dernier descripteur ouvert ou lu), avec des parenthèses vides (eof()), ou encore avec un descripteur explicite (eof FILE). Cette flexibilité permet d'adapter son usage à des scripts simples comme à des traitements multi-fichiers.
- Retourne une valeur vraie à la fin du fichier : Lorsqu'on arrive à la fin d'un fichier, eof retourne la valeur 1, ce qui permet de l'utiliser facilement dans des conditions (if, while,...). Cela rend son comportement intuitif et cohérent avec d'autres fonctions booléennes de Perl.
- Retourne undef si le descripteur est invalide : Si le descripteur fourni à eof n'est pas défini, mal ouvert, ou incorrect, la fonction retourne undef. Cela peut être utilisé pour détecter des erreurs dans l'ouverture du fichier ou pour s'assurer que la variable associée au fichier est bien initialisée.
- Peut être utilisée pour forcer la lecture de tous les fichiers en entrée standard : Dans un contexte où plusieurs fichiers sont lus via <ARGV>, eof() peut être utilisée pour détecter si tous les fichiers en cours sont terminés. Cela est utile dans les scripts de traitement de masse, surtout ceux lancés depuis la ligne de commande avec des redirections.
- S'applique uniquement à des handles de fichiers ouverts en lecture : eof n'est pertinente que lorsqu'on lit un fichier. Elle n'a pas de sens pour un descripteur ouvert en écriture seule, car il n'existe pas de position de lecture pour détecter une fin. L'utiliser sur un descripteur en écriture renverrait probablement undef.
- Souvent inutile dans une boucle de lecture standard Perl : Dans de nombreux cas, on n'a pas besoin d'utiliser eof manuellement. Une boucle while(<FILE>) gère déjà automatiquement la détection de fin de fichier. eof devient alors utile principalement dans des cas particuliers, comme le traitement conditionnel basé sur la fin de fichier, ou dans une boucle until.
- Permet de gérer les flux de données dynamiques ou interrompus : Lorsqu'on lit des fichiers générés en temps réel ou via des canaux comme des sockets ou des pipes, eof peut servir à vérifier si la source s'est arrêtée. Cela est utile dans des scripts de surveillance, de lecture de journaux de bords ou d'analyse de flux en temps réel.
Exemple
Prenons pour acquis que le fichier «readtext.txt» est le contenu :
UnDeux
Trois
Quatre
Cinq
Six
Sept
Huit
Neuf
Dix
Onze
Douze
Treize
Quatorze
Quinze
Seize
Si on veut afficher par exemple afficher un message avant la dernière ligne :
on obtiendra le résultat suivant :
1:Un2:Deux
3:Trois
4:Quatre
5:Cinq
6:Six
7:Sept
8:Huit
9:Neuf
10:Dix
11:Onze
12:Douze
13:Treize
14:Quatorze
15:Quinze
Derniere ligne !!!
16:Seize
Voir également
Langage de programmation - Turbo Pascal - Référence de procédures et fonctions - EOF
Références
La Bible Micro Application HTML & Développement Web, Stefan Munz, Wolfgang Nefzger, 2003, ISBN: 2-7429-2898-7, page 1148
Dernière mise à jour : Dimanche, le 18 octobre 2015