Bien débutant en Perl cours Pdf


Télécharger Bien débutant en Perl cours Pdf

★★★★★★★★★★3.5 étoiles sur 5 basé sur 1 votes.
Votez ce document:

Télécharger aussi :


Bien débutant en Perl documentation de cours

...

1 - Qu'est ce que Perl ?

Perl est un langage de programmation conçu par Larry Wall dont la première version date de 1987. Ce langage de programmation a été créé dans l'optique d'être un intermédiaire entre le langage C et les langages de scripts comme

bash. Au premier, il emprunte la syntaxe et au second la simplicité.

Perl est idéal pour :

  • l'administration système ;
  • la manipulation de texte (mail, logs..) ;
  • la création d'interfaces graphiques simples ;
  • faire l'interface avec un système de gestion de base de données (MySQL, Oracle, PostGreSQL...) ;
  • l'automatisation de tâches répétitives ;
  • la programmation Web, avec des modules CGI ;
  • et bien d'autres choses encore !

Cerise sur le gâteau, Perl est multi-plateforme ! Que vous travaillez sur un Unixoïde (Linux, BSD, Solaris, Mac...) ou un Windows, votre script Perl tournera sans aucune modification sur tous ces systèmes.

Au niveau technique, Perl présente les avantages suivants :

  • gestion automatique de la mémoire (système de Garbage Collector) ;
  • manipulation aisée de données hétérogènes : tableau, chaîne de caractères, table de hachage, référence, et le plus important, tout cela combiné !
  • gestion native des expressions régulières ou regex ;
  • plus de 20000 modules disponibles sur le site du CPAN.

Pour finir cette présentation, je ne peux m'empêcher de vous donner le slogan de Perl, qui témoigne bien de son état d'esprit : There Is More Than One Way To Do It (il y a plus d'une façon de le faire).

2 - Quels sont les outils dont j'ai besoin ?

2-A - L'éditeur de texte

Pour débuter en Perl, la première chose est de disposer d'un bon éditeur de texte, qui permettra notamment de mettre en couleur vos codes.

Sous Windows, je conseille Notepad++, qui est un logiciel libre souvent mis à jour et qui offre beaucoup de possibilités tout en restant simple à utiliser.

Sous Linux, si vous n'aimez pas les éditeurs comme vim ou emacs qui se basent surtout sur la ligne de commande, je vous conseille l'excellent SciTe. On notera qu'il est également disponible sous Windows.

Sous Mac, un excellent éditeur en français est Smultron, aujourd'hui remplacé par l'éditeur Fraise.

Notez bien que les logiciels proposés ne sont pas les seuls, loin de là. Si vous avez déjà un éditeur favori qui gère la coloration syntaxique, utilisez-le !

2-B - Perl

Une fois votre éditeur configuré, attaquons-nous au principal : Perl lui-même ! Si vous êtes sous Linux ou Mac, réjouissez-vous : il y a 95% de chance pour que Perl soit déjà présent sur votre système ! Si vous n'en êtes pas sûr, lancez une console et tapez « perl -v ». Si Perl est installé, la commande affichera la version présente sur le système.

Si Perl n'est pas installé, deux écoles : le recompiler vous-même (les sources sont disponibles sur perl.com) ou

suivre les instructions pour télécharger et installer ActivePerl, disponible sur le site d' ActiveState dans la section

ActivePerl. Sous Windows, choisissez le fichier MSI, sous Mac le DMG et sous Linux le .DEB ou le .RPM.

2-C - Test de fonctionnement

Ouvrez votre éditeur, choisissez le langage Perl dans les choix de coloration syntaxique et tapez le code suivant :

#! /usr/bin/perl -w

use strict;

use warnings;

print "Hello World !\n";

Enregistrez ce code sous le nom de test.pl (les fichiers Perl ont une extension .pl ou .pm pour les modules). Rendez ce programme exécutable (chmod +x test.pl).

Ensuite, lancez une console ou invite de commande, placez-vous dans le répertoire où vous avez enregistré le fichier (à l'aide de la commande cd) et tapez : perl test.pl

Normalement, le texte Hello World ! devrait s'afficher à l'écran. Félicitations ! Vous venez de faire votre premier programme avec Perl !

3 - Quelles sont les ressources disponibles pour apprendre le langage Perl ?

3-A - Les cours en ligne

Maintenant que vous disposez de tous les outils nécessaires pour faire du Perl, il est temps d'apprendre le langage.

Avant de vous acheter un livre sur le sujet, vous préfèrerez peut-être suivre un cours d'introduction à Perl en ligne et gratuit. Là encore, deux écoles :

  • si vous voulez rapidement être opérationnel sans aborder certaines subtilités, je vous conseille Formez-vous rapidement à Perl, partie 1 2 et 3, de David Bourgais ;
  • si vous souhaitez une introduction plus complète au langage Perl, Sylvain Lhullier a rédigé une excellente

Introduction à la programmation en Perl, que vous pouvez suivre même si vous n'avez aucune connaissance en programmation.

3-B - Les livres

Ça y est, vous avez appris le langage Perl et bien évidemment vous en êtes tombé amoureux ! Vous avez décidé d'acheter un livre, mais vous ne savez pas lequel ! Il se trouve qu'Oreilly propose deux excellents livres sur le sujet, très complémentaires :

  • Introduction à Perl de Schwartz Randal, Phoenix Tom et Foy Briab. C'est le livre idéal si vous êtes débutant ;
  • Programmation en Perl, de Larry Wall, Tom Christiansen et Jon Orwant. Ce livre (surnommé Camel Book) est l'ouvrage de référence sur Perl, à posséder absolument !

4 - J'ai un problème, aidez-moi !

Pas de panique, le club des développeurs est là pour vous aider.



Tout d'abord, pensez bien à regarder dans la documentation officielle pour vérifier si votre problème n'est pas déjà abordé. Tapez perldoc -h dans une console et laissez-vous guider !

Vous n'arrivez toujours pas à régler votre problème ? C'est le moment d'utiliser notre FAQ de plus de 150 questions, avec moteur de recherche intégré !

Le problème persiste ? Visitez notre forum et posez votre question !

… … …

...

1 Exercice

Considérons la formule du calcul du volume d’une sphère de rayon R : V = 43πR3. Écrivez un programme qui lit une valeur R sur l’entrée standard, puis qui affiche la valeur du volume d’une sphère de rayon R.

2 Exercice

Considérons le polynôme p(x) = x2 + x − 1. Écrivez un programme qui lit une valeur pour x sur l’entrée standard, puis qui affiche la valeur de p(x).

3 Exercice

$x = 5;

$y = 12;

$x = $x + $y;

$y = $x - $y; $x = $x - $y;

  1. Quelles sont les valeurs de x et y après l’exécution de la séquence sa¬chant que les valeurs de x et y avant l’exécution de la séquence sont respectivement 5 et 12?
  2. Pouvez-vous généraliser?

4 Exercice

Donnez des séquences qui permettent d’effectuer l’échange des valeurs de deux variables.

5 Exercice

Reprenez les exercices 1 et 2 et donnez des fonctions pour calculer le volume d’une sphère et la valeur du polynôme respectivement.

6 Exercice

Écrivez un programme qui considère en entrée deux entiers et qui renvoie en sortie ces deux entiers rangés dans l’ordre croissant.

7 Exercice

Écrivez un programme qui considère en entrée trois caractères et qui renvoie en sortie ces trois caractères rangés dans l’ordre croissant.

8 Exercice

´Écrivez un programme qui considère en entrée trois notes comprises entre zéro et vingt et qui renvoie, en sortie, la moyenne des trois notes et la mention correspondante (l’étudiant est ajournési sa moyenne est strictement inférieure à huit, et convoquéà l’oral si elle est supérieure à huit mais strictement inférieure à dix).

9 Exercice

Considérons que les heures s’expriment sous la forme « h m s > avec 0 S h S 23, 0 S m S 59 et 0 S s S 59. Écrivez un programme qui, pour une heure donnée, renvoie en sortie cette heure augmentée d’une seconde. (Ne convertissez pas en secondes, sinon l’exercice perd de son intérêt...)

10 Exercice

Écrivez un programme qui, pour deux entiers et un caractère donnés en entrée, calcule puis affiche en sortie la somme, la différence, le produit ou le quotient des deux entiers, suivant que le caractère est +, −, ∗ ou /.

11 Exercice

Écrivez une fonction qui calcule la factorielle d’un nombre entier positif.

12 Exercice

Écrivez un programme qui d’une séquence de nombres positifs calcule et affiche le maximum de ces nombres.

13 Exercice

Écrivez une fonction qui pour tout réel a et tout entier positif n donnés en entrée calcule et affiche le terme d’indice n de la suite réelle (u,,,),,,∈N définie par u0 = a et u,,, = (u,,,−1 + a/u,,,−1)/2 pour n ≥ 1.

14 Exercice

Donnez un programme qui considère en entrée une séquence de longueur quelconque d’entiers positifs et qui affiche en sortie le nombre d’entiers dont l’écriture en base 10 se termine par 0, par 1, ..., et par 9. (Utilisez nécessairement – et à bon escient... – un tableau.)

15 Exercice

Écrire un programme Perl qui affiche les lignes de plus de 80 caractères lues sur l’entrée standard.

16 Exercice

Écrire un programme Perl qui affiche le second champ de chaque ligne.

17 Exercice

Écrire un programme Perl qui permet d’enregistrer dans un fichier output.txt les lignes qui contiennent le mot « print >.

18 Exercice

À l’aide des tableaux associatifs, écrire un programme Perl qui affiche la fréquence des mots d’un texte.

19 Exercice

Écrire un programme Perl qui lit des nombres, et qui pour chacun d’entre eux indique s’il est pair ou impair. À l’issue de la saisie (Ctrl-d sous Unix ou Ctrl-z sous Windows) le programme affiche la moyenne des nombres entrés.

20 Exercice

Écrire un programme Perl qui constitue une liste de mots entrés au clavier l’un après l’autre puis qui trie la liste ainsi constituée par ordre croissant puis par ordre décroissant.

21 Exercice

Écrire un programme Perl qui utilise un tableau associatif pour gérer un stock de bouteilles de vin. Le nom d’un vin est utilisécomme clef, une valeur saisie au clavier vient en + ou − de l’éventuelle valeur déjàexistante.

22 Exercice

Écrire un programme Perl qui calcule des expressions arithmétiques simples (non parenthésées) saisies à la volée. Le mot saisi doit commencer par un nombre suivi d’un opérateur arithmétique suivi d’un nombre (n fois). On utilise la fonc¬tion eval(expr) pour faire le calcul.

23 Exercice

Écrire un programme Perl qui vérifie que des nombres entrés au clavier sont bien des entiers relatifs ou des réels.



24 Exercice

Écrire un programme Perl qui saisit un texte à la volée. Lorsque la saisie est terminée, le programme calcule le nombre de lignes, de mots et de caractères du texte.

25 Exercice

On reprend ici l’exercice 21 mais à la fin de la saisie on appelle une fonction qui va calculer la valeur du stock. Elle reçoit en paramètre le tableau associatif du stock, et un tableau associatif donnant le prix H.T. d’une bouteille de chaque vin et le taux de TVA.

26 Exercice

´Ecrire un programme Perl qui parcourt l’ensemble des fichiers réalisés pour les exercices précédents et qui rajoute un commentaire dans chacun d’entre eux. On choisit ici de remplacer la première ligne par elle même suivie d’un commentaire constant.

 27 Exercice

Écrivez un programme Perl qui réalise les choses suivantes :

  1. Définissez un tableau de séquences d’oligonucléotides :

@seq = ("tcgtgccca", "tgtt", "cccga", "ttcatcag", "ggcaag",

"ctg", "ggtgtaccggtgatcac", "ccaccta", "cctgaattaat");

ou (pour éviter de mettre les apostrophes)

@seq = qw(

tcgtgcca

tgtt

cccga

ttcatcag

ggcaag

ctg

ggtgtaccgtgatcac

ccaccta

cctgaattaat

);

  1. Répartissez les éléments du tableau @seq en trois tableaux : @small_seq contiendra les oligos ayant entre 0 et 5 bases (caractères), @medium_seq ceux ayant entre 6 et 10 bases, et @large_seq ceux ayant 11 bases et plus.
  2. Affichez chacun des tableaux résultants.
  3. Trouvez le plus long oligo dans @seq et affichez le.

Indice : L’opérateur length retourne la longueur d’une chaîne, l’opérateur push permet d’ajouter un élément à un tableau, et l’opérateur join est très utile pour afficher simplement (en une instruction) le contenu complet d’un tableau.

28 Exercice

Supposons maintenant que votre programme Perl, à la place de définir un tableau de séquences d’oligonucléotides, les lise dans un fichier. Le format du fichier est très simple : un oligo par ligne. Ainsi, le fichier contenant le tableau de séquences de l’exercice 27 est :

tcgtgccca

tgtt

cccga

ttcatcag

ggcaag

ctg

ggtgtaccggtgatcac

ccaccta

cctgaattaat

Modifiez votre programme pour qu’il soit capable de lire un nombre quelconque de séquences d’oligonucléotides dans un fichier et de faire la même analyse que dans l’exercice 27.

29 Exercice

La table suivante spécifie la maladie associée à chaque gène :

AD4       Alzheimer’s Disease

BRCA1  Breast Cancer

DMD     Duchenne Muscular Dystrophy

FMR1    Fragile X Syndrome

GBA       Gaucher Disease

Écrivez un programme Perl qui demande à l’utilisateur d’entrer un nom de gène, et affiche la maladie correspondante. Le programme devra afficher un message d’erreur si le gène entrén’est pas trouvédans la table.

Remarque: pour définir le tableau représentant la table, vous pouvez utiliser les deux syntaxes suivantes.

%genes = ("AD4", "Alzeimer’s Disease", "BRCA1", "Breast Cancer", "DMD", "Duchenne Muscular Dystrophy", "FMR1", "Fragile X Syndrome", "GBA", "Gancher Disease");

ou

%genes = (

AD4 => "Alzeimer’s Disease",

BRCA1 => "Breast Cancer",

DMD => "Duchenne Muscular Dystrophy",

FMR1 => "Fragile X Syndrome",

GBA => "Gancher Disease"

);

30 Exercice

Considérez un fichier contenant un texte quelconque. Écrivez un script Perl qui recopie ce fichier de sorte que chaque ligne soit précédée de son numéro.

31 Exercice

Écrivez un programme Perl qui prend en entrée une séquence cDNA, valide qu’elle contient bien uniquement les nucléotides A, T, G et C, et affiche à l’écran la séquence mRNA correspondante (remplacez tous les T par des U).

Remarque : proposez deux solutions différentes pour les substitutions de T en U, une avec l’opérateur s/// et une avec l’opérateur tr///.



223