| Programme fich1.pl | Exécution sur l'écran |
|---|---|
@ARGV = ("entree.txt");
while ($ligne = <>){
print("$ligne");
}
|
c:\progs> perl fich1.plent
Ligne 1 du fichier entree.txt
Ligne 2 du fichier entree.txt
Ligne 3 du fichier entree.txt
Ligne 4 du fichier entree.txt
Ligne 5 du fichier entree.txt
Ligne 6 du fichier entree.txt
Ligne 7 du fichier entree.txt
Ligne 8 du fichier entree.txt
Ligne 9 du fichier entree.txt
c:\progs>
|
| Programme fich2.pl | Exécution sur l'écran |
|---|---|
@ARGV = ("e1.txt","e2.txt");
while ($ligne = <>){
print("$ligne");
}
|
c:\progs> perl fich2.plent
Ligne 1 du fichier e1.txt
Ligne 2 du fichier e1.txt
Ligne 3 du fichier e1.txt
Ligne 4 du fichier e1.txt
Ligne 5 du fichier e1.txt
Ligne 1 du fichier e2.txt
Ligne 2 du fichier e2.txt
Ligne 3 du fichier e2.txt
Ligne 4 du fichier e2.txt
Ligne 5 du fichier e2.txt
c:\progs>
|
| Programme fich3.pl | Exécution sur l'écran |
|---|---|
while (<>){
print;
}
|
c:\progs> perl fich3.pl entree.txtent
Ligne 1 du fichier entree.txt
Ligne 2 du fichier entree.txt
Ligne 3 du fichier entree.txt
Ligne 4 du fichier entree.txt
Ligne 5 du fichier entree.txt
Ligne 6 du fichier entree.txt
Ligne 7 du fichier entree.txt
Ligne 8 du fichier entree.txt
Ligne 9 du fichier entree.txt
c:\progs>
|
| Opération. | Instruction. |
|---|---|
| Ouverture d'un fichier en lecture. | open (DESC, "nom"); |
| Ouverture d'un fichier en écriture. | open (DESC, "nom"); |
| Ouverture d'un fichier en écriture incrémentale | open (DESC, ">>nom"); |
| Ouverture d'un fichier en lecture / écriture. | open (DESC, "+>nom"); |
| Fermeture d'un fichier. | close (DESC); |
| Programme | Commentaire |
|---|---|
|
open (ENTREE, "donnees.txt"); while(<ENTREE>){ print; } close(ENTREE); |
Ouverture du fichier "donnees.txt" en lecture et accés séquentiel à ses informations. |
|
open (SORTIE, "resultats.txt"); for ($i=1;$i<=100;$i++) { print SORTIE ("$i/n"); } close(SORTIE); |
Ouverture du fichier "résultat.txt" en écriture et écriture séquentielle. A la fin, le fichier contiendra les 100 premiers entiers à raison de 1 par ligne. |
unless ( open (FICHIER, "/tmp/fichier")) {
print "Desole, impossible d'acceder a /tmp/fichier.\n";
} else {
# Deroulement normal du programme.
}
unless ( open (FICHIER, "/tmp/fichier")) {
die "Desole, impossible d'acceder a /tmp/fichier.\n";
}
# Deroulement normal du programme.
open (FICHIER, "/tmp/fichier") or die "Desole, impossible d'acceder a /tmp/fichier.\n"
| "Open that file or die " |
|---|
| Programme die1.pl | Exécution sur l'écran |
|---|---|
open (FICH,"toto") or
die "erreur d\'ouverture.";
|
c:\progs> perl die1.plent
# erreur d'ouverture.
File 'die1.pl'; Line 1
c:\progs>
|
| Programme die1.pl | Exécution sur l'écran |
|---|---|
open (FICH,"toto") or
die "erreur d\'ouverture.\n";
|
c:\progs> perl die1.plent
# erreur d'ouverture.
c:\progs>
|
| Programme fich4.pl | Exécution sur l'écran |
|---|---|
#!/usr/bin/perl
open (FICHIER,">Sortie.txt");
$chaine = "Perl est vraiment un super langage.";
&ecrire_une_ligne;
select (FICHIER);
&ecrire_une_ligne;
close (FICHIER);
# Declaration procedure.
sub ecrire_une_ligne {
print ("J'écris :\n");
print ("$chaine\n");
print (" sur le fichier de sortie.\n");
}
|
c:\progs> perl fich4.plent
J'écris :
Perl est vraiment un super langage.
sur le fichier de sortie.
c:\progs>
|
| Programme fich4bis.pl | Exécution sur l'écran |
|---|---|
@ARGV = ("Sortie.txt");
while (<>){
print;
}
|
c:\progs> perl fich4bis.plent
J'écris :
Perl est vraiment un super langage.
sur le fichier de sortie
c:\progs>
|
select (SORTIE);
. . . .
my $ancien_desc = select (FICHIER);
#!usr/bin/perl
open (STDOUT,">sortie.txt") || die ("Pas moyend'ouvrir STDIN");
open (STDERR,">STDOUT") || die ("Pas moyen d'ouvrir STDERR");
print STDOUT ("La première ligne, va sur la sortie (STDOUT).\n");
print STDERR ("La seconde ligne, va sur la sortie erreur(STDERR).\n");
close (STDOUT);
close (STDERR);
La première ligne, va sur la sortie (STDOUT). La seconde ligne, va sur la sortie erreur(STDERR).
La seconde ligne, va sur la sortie erreur(STDERR). La première ligne, va sur la sortie (STDOUT).
#!usr/bin/perl
open (STDOUT,">sortie.txt") || die ("Pas moyen d'ouvrirSTDIN");
open (STDERR,">&STDOUT") || die ("Pas moyend'ouvrir STDERR");
select (STDERR);
# Suppression de la bufferisation de STDERR.
$| = 1;
select (STDOUT);
# Suppression de la bufferisation de STDOUT.
$| = 1;
print STDOUT ("La première ligne, va sur la sortie (STDOUT).\n");
print STDERR ("La seconde ligne, va sur la sortie erreur(STDERR).\n");
close (STDOUT);
close (STDERR);
close (STDERR);
La première ligne, va sur la sortie (STDOUT). La seconde ligne, va sur la sortie erreur(STDERR).
my $ancien = select (FICHIER); $| =1; select ($ancien); my $ancien = select (SORTIE); $| =1; select ($ancien);
| Programme fich5.pl | Exécution sur l'écran |
|---|---|
#!/usr/bin/perl
@ARGV = ("Fichier1.txt", "Fichier2.txt");
while ($ligne = <>) {
print ("$ligne");
if (eof) {
print ("\n -- Fin du fichier courant --\n");
}
}
|
c:\progs> perl fich5.plent
Ligne 1 du fichier 1.
Ligne 2 du fichier 1.
Ligne 3 du fichier 1.
Ligne 4 du fichier 1.
Ligne 5 du fichier 1.
Ligne 6 du fichier 1.
Ligne 7 du fichier 1.
Ligne 8 du fichier 1.
Ligne 9 du fichier 1.
-- Fin du fichier courant --
Ligne 1 du fichier 2.
Ligne 2 du fichier 2.
Ligne 3 du fichier 2.
Ligne 4 du fichier 2.
Ligne 5 du fichier 2.
Ligne 6 du fichier 2.
Ligne 7 du fichier 2.
Ligne 8 du fichier 2.
Ligne 9 du fichier 2.
-- Fin du fichier courant --
c:\progs>
|
| Programme fich6.pl | Exécution sur l'écran |
|---|---|
#!/usr/bin/perl
@ARGV = ("Fichier1.txt", "Fichier2.txt");
while ($ligne = <>) {
print ("$ligne");
if (eof()) {
print ("\n -- Fin du fichier courant --\n");
}
}
|
c:\progs> perl fich6.plent
Ligne 1 du fichier 1.
Ligne 2 du fichier 1.
Ligne 3 du fichier 1.
Ligne 4 du fichier 1.
Ligne 5 du fichier 1.
Ligne 6 du fichier 1.
Ligne 7 du fichier 1.
Ligne 8 du fichier 1.
Ligne 9 du fichier 1.
Ligne 1 du fichier 2.
Ligne 2 du fichier 2.
Ligne 3 du fichier 2.
Ligne 4 du fichier 2.
Ligne 5 du fichier 2.
Ligne 6 du fichier 2.
Ligne 7 du fichier 2.
Ligne 8 du fichier 2.
Ligne 9 du fichier 2.
-- Fin du fichier courant --
c:\progs>
|
| Programme fich7.pl | Exécution sur l'écran |
|---|---|
#!/usr/bin/perl
sub ouvrir_fichier {
my ($ref, $sens, $nom) = @_;
open ($ref, $sens.$nom) or
die ("Erreur ouverture $nom\n")
}
sub lire_fichier {
my ($ref) = @_;
<$ref>;
}
sub ecrire_fichier {
my ($ref, $ligne) = @_;
print $ref ($ligne);
}
print ("Nom du fichier à lire ?\n");
$nom_fichier = <STDIN>;
&ouvrir_fichier ("ENTREE", "", $nom_fichier);
print("Nom du fichier aeécrire ?\n");
$nom_du_fichier = <STDIN>;
&ouvrir_un_fichier ("SORTIE", ">",$nom_fichier);
$num = 1;
while ($ligne = &lire_fichier("ENTREE")) {
print ("Traitement de la ligne $num.\n");
$num++;
&ecrire_fichier("SORTIE", $ligne);
}
print("\nFin du programme.\n");
|
c:\progs> perl fich7.plent Nom du fichier à lire ? Poeme.txtent Nom du fichier a ecrire ? Sortie.txtent Traitement de la ligne 1. Traitement de la ligne 2. Traitement de la ligne 3. Traitement de la ligne 4. Traitement de la ligne 5. Traitement de la ligne 6. Traitement de la ligne 7. Traitement de la ligne 8. Traitement de la ligne 9. Traitement de la ligne 10. Traitement de la ligne 11. Traitement de la ligne 12. Traitement de la ligne 13. Traitement de la ligne 14. Traitement de la ligne 15. Traitement de la ligne 16. Traitement de la ligne 17. Fin du programme. c:\progs> |
| référence | Référence du fichier concerné. |
| distance | Entier représentant le nombre de caractères à sauter |
| relativement_a |
Entier égal à 0, 1 ou 2. 0 : relativement au début du fichier. 1 : relativement à la prochaine ligne qui doit être lue. 2 : relativement à la fin du fichier. |
| L'instruction. | Provoque. |
|---|---|
| seek (REF,0,0) | Un retour au début du fichier. |
| seek (REF,100,1) | Un saut de 100 caractères en avant. |
| seek (REF,-100,1) | Un saut de 100 caractères en arrière. | seek (REF,0,2) | Un positionnement en fin de fichier. |
| référence | Référence du fichier concerné. |
c:\progs> type fich8.plent #!/usr/bin/perl @liste_de_chiffres = ("zéro","un","deux","trois","quatre", "cinq","six","sept","huit","neuf"); # Creation du fichier. open (FICHIER, ">Sortie.txt"); foreach $chiffre (@liste_de_chiffres) { print FICHIER ("$chiffre.\n"); } close (FICHIER); open (FICHIER, "Sortie.txt"); while (1) { $memorise = tell (FICHIER); $ligne= <FICHIER>; last if ($ligne eq ""); print ("Lecontenu de la ligne est : $ligne"); $ligne = <FICHIER>; print ("Le contenu de la ligne est : $ligne"); print ("-retour à la position mémorisée ($memorise).\n"); seek (FICHIER,$memorise_la_position, 0); $ligne = <FICHIER>; print ("Lecontenu de la ligne est : $ligne"); $ligne = <FICHIER>; print ("Le contenu de la ligne est : $ligne"); } c:\progs>perl fich8.plent Le contenu de la ligne est : zéro. Le contenu de la ligne est : un. - retour à la position mémorisée (0). Le contenu de la ligne est : zéro. Le contenu de la ligne est : un. Le contenu de la ligne est : deux. Le contenu de la ligne est : trois. - retour à la position mémorisée (10). Le contenu de la ligne est : deux. Le contenu de la ligne est : trois. Le contenu de la ligne est : quatre. Le contenu de la ligne est : cinq. - retour à la position mémorisée (23). Le contenu de la ligne est : quatre. Le contenu de la ligne est : cinq. Le contenu de la ligne est : six. Le contenu de la ligne est : sept. - retour à la position mémorisée (37). Le contenu de la ligne est : six. Le contenu de la ligne est : sept. Le contenu de la ligne est : huit. Le contenu de la ligne est : neuf. - retour à la position mémorisée (48). Le contenu de la ligne est : huit. Le contenu de la ligne est : neuf. c:\progs>