Formation langage Perl, tutoriel & guide de travaux pratiques en pdf.
Les fichiers
Le traitement des informations contenues dans des fichiers est l’un des buts premiers de Perl. Les opérations de lecture et d’écriture de fichiers sont donc extrêmement simples à réaliser.
Traitement de la ligne de commande
Perl permet très simplement de lire ligne par ligne les fichiers dont les noms sont indiqués sur la ligne de commande. Considérons le script suivant, que l’on appelera cat.pl :
while ( my $ligne = <> )
{
print « $ligne » ;
}
Exécutons-lecommececi:
./cat.pl toto tata
où toto et tata sont deux fichiers. Le résultat de cette commande est que le contenu de ces fichiers est affiché à l’écran, comme s il’on avait utilisé la commande cat. En fait, toute la magie de ce script réside dans l’expression <>. Lorsqu’on l’utilise, Perl considère tous les arguments du script comme des noms de fichiers et <> renvoie successivement chaque ligne du premier fichier, puis du deuxième, etc. C’est un moyen très pratique pour traiter les fichiers. Si aucun argument n’a été spécifié sur la ligne de commande, <> renvoie chaque ligne de l’entrée standard. On pourrait même écrire ce script plus simplement:
while ( <> )
{ 3 print ; 4 }
On utilise ici une particularité de Perl,la variable implicite $_.De nombreuses instructions et fonctions utilisent cette variable si on ne leur en fournit pas une, ce qui est le cas dans cet exemple.Celui-ci est équivalent à: 1 while ( $_ = <> ) 2 { 3 print « $_ » ; 4 }
mais la forme utilisant la variable implicite est plus simple et, avec un peu d’habitude, plus lisible,pour peu que la séquence d’instructions l’utilisant soit courte. Notez qu’on ne déclare jamais la variable implicite au moyen de l’instruction my.
Lecture
open ( FICHIER , ’fichier’ ) ;
while ( my $ligne = <FICHIER> )
{
# faire quelque chose
}
close ( FICHIER ) ;
Avant de pouvoir faire quoi que ce soit avec un fichier,il faut tout d’abord l’ouvrir.C’est le rôlede la fonction open.Son premier argument est un de scripteur de fichier,qui est initialisé par open etquipermettradelirelefichierparlasuite.Sonsecondargumentestlenomdufichierà ouvrir. Ensuite,il est très simple de lire le fichier ligne par ligne,grâce à l’expression <FICHIER>,qui renvoie successivement chaque ligne du fichier. Enfin,le fichier est refermé par la fonction close,qui prend en argument le de scripteur de fichier initialisé par open. En ouvrant le fichier, on peut ajouter un test permettant de quitter le script (ou de faire quelque chose de plus utile que de planter)sile fichier ne peut pas être ouvert.
my $fichier = ’fichier’ ;
open ( FICHIER , $fichier )
or die ( « Impossible d’ouvrir $fichier : $!\n » ) ;
while ( my $ligne = <FICHIER> )
{
# faire quelque chose
}
close ( FICHIER ) ;
Si le fichier ne peut pas être ouvert, la suite de la ligne (après or) est exécutée. La fonction die sort du scripte n imprimant le message d’erreur qui la suit($! est substitué par le message d’erreur qui correspond à la situation).