Les entrées/sorties

Les flots standards

Il existe 3 flots standards :

Nom du flot 

Description 

STDIN  Le flot standard d'entrée.
STDOUT Le flot standard de sortie.
STDERR Le flot standard de sortie d'erreur. 

Les opérateurs de redirection > , < et l'opérateur diamant < >.

Il est possible de rediriger STDOUT vers un fichier à l'aide de l'opérateur >.

Par exemple, voici le script Perl test.pl qui écrit Salut dans STDOUT:

print "Salut";

A l'invite de commande perl test.pl > test.txt redirige STDOUT vers le fichier test.txt, en d'autres mots : test.txt contient le mot Salut.

De même, il est possible de rediriger un fichier vers l'entrée standard à l'aide de l'opérateur <.

Par exemple, voici le script Perl test2.pl qui lit STDIN et qui en recopie le contenu sur STDOUT lignes à lignes jusqu'à ce que soit rencontré le caractère Ctrl Z de fin flot.

while (<STDIN>)
{
             print $_;
}

A l'invite de commande perl test2.pl < test.txt redirige le fichier test.txt. En d'autres mots, le contenu de test.txt, Salut, vient s'afficher à l'invite de commande en lieu et place de chaînes de caractères entrées à la main telque le fait la commande perl test2.pl.

Remarquons l'utilisation de l'opérateur diamant <> qui permet de passer le contenu ligne à ligne de son argument par la variable $, par défaut, ou par une variable placée à gauche de l'opérateur diamant comme dans l'exemple ci-dessous :

while ($temp = <STDIN> )
{
                           print($temp);
}

Les opérateurs de test de fichiers

Perl possède de nombreux opérateurs qui ont pour objet de tester différents aspects d'un fichier. L'opérande par défaut d'un opérateur de test de fichier est la variable $_.

Voici quelques opérateurs de test de fichier :

Opérateur 

Description 

-B opérande  Teste si l'opérande est 
un fichier binaire.
-e opérande Teste si l'opérande existe.
-f opérande  Teste si l'opérande est un 
fichier ou un répertoire.
-s opérande Retourne la taille de 
l'opérande en byte. 
Voici un script illustrant l'utilisation d'opérateurs de test de fichier :

foreach(@ARGV){
            next unless -f;
            $taille_de_fichier = -s ;
            print ("$_  : $taille_de_fichier bytes. \n");
}

Les fonctions de fichier

Voici une liste de fonctions de fichier utiles, attention cette liste n'est pas exhaustive.
 

Fonction 

Description 

binmode(identificateur de fichier Met le fichier correspondant à identificateur de fichier en mode binaire. 
chdir(répertoire) Change de répertoire. Produit vrai si l'opération s'est bien déroulée, 
faux sinon.
close(identificateur de fichier) Ferme la connexion entre le fichier correspondant à identificateur de fichier et un programme.
closedir(répertoire)  Ferme la connexion entre un répertoire et un programme.
getc(identificateur de fichier) Lit le caractère suivant d'un fichier. Si la fichier n'est pas spécifié le 
flot standard d'entrée est parcouru.
glob(expression) Retourne une liste de fichiers qui vérifie l'expression. Exemple : 
glob("*.pl"); 
mkdir(identificateur de répertoire)  Crée un répertoire depuis le répertoire courrant. Retourne vrai si l'opération s'est 
déroulée sans incident, faux sinon.
lstat(identificateur de fichier) Retourne les statistiques d'un fichier sous forme d'un vecteur de 13 éléments. 
open(identificateur de fichier, expression)  Crée un identificateur de fichier faisant le lien entre un fichier et le programme. expression gère le type de connexion entre le fichier et le programme, pour plus de 
détails voir plus loin. 
opendir(identificateur de répertoire, répertoire)  Crée un identificateur de répertoire faisant le lien entre un répertoire et le programme.
print identificateur de fichier (expression) Ecrit l'expression dans le fichier correspondant à identificateur de fichier. Par défaut il y écriture dans le flot standard de sortie. 
rename(vieux nom de fichier, nouveau nom de fichier) Renomme un fichier.
rmdir(identificateur de répertoire) Détruit le répertoire correspondant à l'identificateur de répertoire. Retourne vrai si 
l'opération s'est effectuée, faux sinon.
unlink (vecteur de fichier)  Détruit les éléments du vecteur de fichiers. Retourne le nombre de fichiers détruits.

suite-index