Exercice 0
Consigne
Exemples à tester et à comprendre :
1. perl -v
Cette commande sert donc à connaitre la version du système perl installé sur l'ordinateur
2. man perl
Cette commande sert donc à avoir le manuel d'utilisation
3. man perlfunc
Pareil que la fonction précédente mais en plus détaillé
4. perl -e '$prenom ="Jean"; print "Bonjour $prenom\n"'
Cette commande sert donc à se servir de perl sans avoir recours à un fichier pl
5. perl -e 'foreach $i (0..10) { print "7x$i = ",7*$i,"\n" ;}'
Cette commande sert d'un à se servir de la fonction foreach sans passer par un fichier pl, et ensuite pour calculer jusqu'à la †able de multiplication de 7
6. perl -e '$n=7; foreach $i (0..100) {printf "%3d x %3d = %5d\n" , $n, $i, $n*$i;}'
printf signifie qu’on affiche sous contrôle d’un format. %3d signifie qu’on affiche un nombre entier en base 10 et qu’il est cadré à droite sur 3 digits. %5d signifie qu’on affiche un nombre entier en base 10 et qu’il est cadré à droite sur 5 digits. %3d‚ %3d et %5d sont remplacés respectivement par le contenu des variables $n‚ $i et $n*$i.
Exercice 1
Consigne
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 :
1. Comparez $s1 et $s2. Observer la différence entre l'usage des quotes ' et des guillemets ". Conclure.
2. Comparez $s3 et $s4. En déduire 2 façons de concaténer du texte avec des variables.
3. Modifier pour faire afficher :
Résultats
Pour la variable $s1, on peut voir que les "" prennent vraiment en compte le "\n", alors que les '' le prennent comme une simple suite de caractères
La variable $s3 met tout simplement les deux variables entre "" alors que la deuxième les sépare.
Exercice 2
Consigne
. 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é
. 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é
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
Résultats
Dans cette commande dans la troisième ligne on peut tout simplement abréger :
On obtient donc ceci en résultat
Pour ajouter l'âge, on doit changer le script
Exercice 3
Consigne
1. Dans le code qui suit, quel est le role 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ésultats pour l'addition
Résultats table de multiplication
Exercice 4
Consigne
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
1. Expliquer et tester le script initial
2. Expliquer ICI pourquoi l'affichage est identique à la saisie
3. Réécrire en n'utilisant que la variable spéciale $_ (voir ci-dessous, variables scalaires 5 et 6)
Le "<>" contient tout ce qu'on met par le clavier donc tout ce qu'on écrit sera copié
Si on remplace le "<>" par "$_" va se passer la même chose
Exercice 5
Consigne
Expérimenter le script suivant :
Résultats
On obtient les dossiers contenus dans le disque demandé
Exercice 6
Consigne
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éditement écrite dans le fichier
4. Après sortie de boucle, pour controler afficher le contenu du fichier créé.
Résultats
Cliquer ici pour voir le resultat
Exercice 7
Consigne
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 controler, afficher le contenu du fichier copié
Résultats
Cliquer ici pour voir le fichier d'origine
Cliquer ici pour voir le fichier copié