Partie 2 - Etape1 - Exercice 6


accès aux fichiers
* La fonction open associe au fichier spécifié un filehandle (descripteur de fichier)
    * syntaxe :

      $fichier= "/chemin/vers/fichier";
      open F, $fichier;  # ouverture en lecture seule du fichier en lui attribuant le descripteur F
      open F, ">$fichier"; # ouverture en écriture
      open F, ">>$fichier"; # ouverture en ajout dans un fichier existant
      print F $chaine; # écriture de $chaine dans le fichier

    * Chaque appel à l'opérateur "chevron" appliqué au descripteur F, provoque la lecture de la ligne suivante dans le fichier.
    * l'instruction print F $chaine (attention, pas de virgule !) écrit la chaine comme un enregistrement dans le fichier
      Rappel : en l'absence de descripteur, print envoie ses arguments sur la sortie standard, c'est-à-dire l'écran

   1. Expérimenter le script suivant.
   2. Expliquer le fonctionnement de la boucle de lecture : quel résultat renvoie l'affectation $ligne=<F>

---------------------------------------------
#!/usr/bin/perl -w
# ouverture en lecture du fichier des comptes utilisateurs
open F, "/etc/passwd";
# on aurait pu utiliser des variables :
# $fichier="/etc/passwd"; open F, $fichier;
while ($ligne = <F>) {
 print "ligne $. : $ligne";
}
close F;

1. Expérimenter le script.

Commande: 

Résultat:         

 

2. Expliquer le fonctionnement de la boucle de lecture : quel résultat renvoie l'affectation $ligne=<F>

Commentaires : Tant qu’il y a des lignes dans fichier  "F" (/etc/passwd), on écrit chaque ligne suivie de son numéro puis de son contenu.