Perl — manipulation de fichiers

De wiki.nexiat.fr
Aller à la navigation Aller à la recherche
Perl — fichiers
Type Entrées/sorties Perl
Éléments filehandle, mode d'ouverture, chemin

Pour manipuler un fichier en Perl, il faut une variable filehandle, un mode d'ouverture et le chemin du fichier.

Modes d'ouverture

Mode Effet
< Ouverture en lecture
> Ouverture en écriture (écrase le fichier existant)
>> Ouverture en écriture (ajout à la suite)

Déclaration

# my $filename = "C:\\fichier_test.txt";       # Sous Windows
my $filename = "/home/utilisateur/fichier_test.txt"; # Sous Linux

my $fh;
open ($fh, '>', $filename) or die "Impossible d'ouvrir le fichier $filename en écriture";
# ... code qui écrit dans le fichier ...
close $fh;

open ($fh, '<', $filename) or die "Impossible d'ouvrir le fichier $filename en lecture";
# ... code qui lit le fichier ...
close $fh;

Écrire dans un fichier

use strict;
use warnings;

open (my $fh, '>', 'fichier_test.txt') or die "Impossible d'ouvrir le fichier";
print $fh "Hello, World !\n"; # On précise à print le filehandle de destination
close $fh;

Lire un fichier

open (my $fh, '<', 'fichier_test.txt') or die "Impossible d'ouvrir le fichier";
my $ligne = <$fh>;
close $fh;

print $ligne;

Afficher un fichier ligne à ligne

use strict;
use warnings;

my $filename = "/home/utilisateur/prg/perl/lorem_ipsum.txt";

open (my $fh, '<', $filename)
    or die "Impossible d'ouvrir le fichier '$filename' en lecture";

my $compteur = 1;

while (my $ligne = <$fh>)
{
    print "$compteur\t$ligne";
    ++$compteur;
}

close $fh;

Recopier un fichier

use strict;
use warnings;

my $fichier_src = "fichier_test1.txt";
my $fichier_dst = "fichier_test2.txt";

open (my $fh_src, '<', $fichier_src)
    or die "impossible d'ouvrir le fichier '$fichier_src' en lecture";

open (my $fh_dst, '>', $fichier_dst)
    or die "impossible d'ouvrir le fichier '$fichier_dst' en écriture";

while (my $ligne = <$fh_src>)
{
    print $fh_dst $ligne;
}

close $fh_src;
close $fh_dst;

Voir aussi