Accueil  Partie 1  Projet Perl TK


EXERCICE 0  EXERCICE 1  EXERCICE 2  EXERCICE 3  EXERCICE 4   EXERCICE 5   EXERCICE 6   EXERCICE 7


EXERCICE 0

Exemples à tester et à comprendre :


la commande perl -v:

Cette fonction permet d’avoir accès au contenu perl installé .


La commande man perl :


Cette fonction permet d’accèder au manuel d’utilisation par la fenêtre de commande de perl.


La commande man perl func

Cette fonction détaille les utilisations possibles de la version installée.

perl -e '$prenom ="Jean"; print "Bonjour $prenom\n"

Le script est rentré directement dans la fenetre de commande; abscence de fichier pl.

perl -e 'foreach $i (0..10) { print "7x$i = ",7*$i,"\n" ;}'

Application de l’instruction foreach sans passer par un script pl.

perl -e '$n=7; foreach $i (0..100) {printf "%3d x %3d = %5d\n" , $n, $i, $n*$i;}'


EXERCICE 1:Interpolation et concaténation des variables
Une variable simple (dite "scalaire") est un identificateur toujours précédé du symbole $
print, l’instruction d’affichage, ne fait pas passer à la ligne automatiquement, c'est le role du caractère \n, qu’il faudra donc utiliser systématiquement. Exécuter le petit script ci-dessous :
•Comparez $s1 et $s2. Observer la différence entre l’usage des quotes et des guillemets . Conclure.
•Comparez $s3 et $s4. En déduire 2 façons de concaténer du texte avec des variables.
•Modifier pour faire afficher :
Bonjour Jean
As-tu vraiment 25 ans ?



Chargement de la bibliothèque Perl
Assignation de chaque variable scalaire à une valeur.
$1 est assignée à une chaîne de caratères et à une variable prédéfinie.
Affichage du résultat.
De même pour $2,$3;$4.

Résultat



Résultat


Les simples quotes inscrivent la variable et ne déclenchent pas le retour à la ligne. Tandis que les doubles quotes affichent le contenu des variables et marque le retour à la ligne.
Ceci est illustré avec la vrariable $s1 et le retour à la ligne selon le nombre de quotes que reçoit le \n.


EXERCICE 2 :Entrées-sorties console

•Les accès aux fichiers s’effectuent habituellement par l’intermédiaire de variables particulières appelées filehandles en français descripteurs de fichiers.
•Perl dote chaque programme exécuté de 3 descripteurs prédéfinis, STDIN, STDOUT et STDERR
(reprise des canaux standard d'Unix : entrée clavier, sortie écran, sortie en erreur) qui sont immédiatement utilisables sans déclaration, contrairement aux accès à des fichiers réels.
•L'opérateur de lecture sur l’entrée standard (le clavier) est noté , souvent abrégé en <>
•Un appel à cet opérateur lit la ligne saisie jusquau prochain caractère "nouvelle ligne" (y compris)
•L’instruction chomp $var permet de retirer ce caractère \n de la chaine et renvoie 1 s’il réussit
•Ne pas la confondre avec chop $var qui retire le dernier caractère quel qu’il soit et le renvoie.
•La sortie standard sur l'écran, est noté . L’écriture, ici l’affichage écran, s’effectue avec print, sous la syntaxe générale :
print STDOUT $texte; qu’il est agréable d'abréger en : print $texte
1. Le code est-il correct ? Commenter l’exécution ensuite
2. Corriger si nécessaire
3. Compléter le dialogue en demandant l’age




Le code est correct. Ecriture en sortie standard (STDOUT) et en sortie (print) de la chaîne de caractères : Quel est ton prénom ? La variable $prenom permet de récupérer le contenu du descripteur STDIN ; lecture en entrée standard. La fonction print permet d’imprimer les chaînes de caractères et autres arguments ($prenom) .


Résultat


EXERCICE 3 :Opérateurs numériques

1. Dans le code qui suit, quel est le rôle du caractère \ devant $a ?
2. Faire lire 2 variables numériques $a et $b, à l'aide de l'opérateur <>
3. Faire afficher le résultat de l’addition sous la forme (par exemple)
$a + $b = 200 + 350 = 550
4. prolongement : à l’aide d'une itération while, dont le syntaxe est esquissée ci-dessous, afficher la table de multiplication par N (N saisi)



Résultat


Le symbole "/" permet de despécialiser le caractère suivant celui-ci.

EXERCICE 4 :Boucle de lecture while
Saisir des lignes au clavier dans une boucle while (tant que) avec l’opérateur <> La fin de la saisie est provoquée par l’envoi du caractère Ctrl-d (eof) sur une ligne vide
Expliquer et tester le script initial


Chargement de la bibliothèque de PERL. Dans la variable $ligne est stockée une ligne concaténée du texte.Dans le bloc, la variable $ligne effectue une lecture sur le clavier .

Réécrire en n’utilisant que la variable spéciale $_

Résultat


Cette variable est associée à des fonctions que Perl gère en contexte. Dans ce script cette variable spéciale fait référence
à la dernière chaÎne saisie .


EXERCICE 5 :accès aux fichiers

Dans le test de boucle de WHILE , la variable scalaire $ligne effectue une lecture sur le fichier FILE inscrit dans le clavier tant qu'il y a une ligne dans le fichier.
L’instruction est l’impression de la ligne saisie ainsi et son numéro de ligne.

EXERCICE 6
1. Lire le nom du fichier (s'il n'existe pas, le nom sera "ajout.txt")
2. Ouvrir ce fichier en ajout
3. Ecrire une boucle (cf exo4.pl), dans laquelle chaque ligne saisie au clavier est immédiatement écrite dans le fichier
4. Après sortie de boucle, pour contrôler afficher le contenu du fichier créé.


Le scrit ne fonctionne pas car il nécessite une autre version de cygwin , cygwin Bash, afin d’actionner le CTRL-D.
Résultat


EXERCICE 7 :Ecrire dans un fichier
1. Lire le nom du fichier à copier (s'il n'existe pas, le nom sera "essai.txt")
2. Lire le nom du fichier qui doit contenir la copie (par défaut "copie.txt")
3. ouvrir ces 2 fichiers en lecture ou en écriture
4. tant qu’il y a une ligne à lire dans le fichier source, la copier dans le fichier cible
5. pour contrôler, afficher le contenu du fichier copié

Résultat
Résultat
Résultat