langage Perl

Présentation

Au cours de ce stage vous apprendrez à programmer en Perl.

Cette formation vous permettra de maîtriser le langage Perl, mais aussi de découvrir la façon de penser de la communauté Perl. Vous en apprendrez la syntaxe et vous mettrez également en application l'utilisation de modules, ceux-ci vous permettant de profiter d'un grand nombre de fonctionnalités déjà développées par la communauté Perl.

Contenu

  • Les bases du langage
  • Les scalaires, les tableaux, les hachages
  • Les expressions rationnelles
  • Les fonctions, les modules
  • Manipulations des fichiers et des répertoires
  • Opérations liées au système d'exploitation
  • Manipulations des processus
  • Interface avec les bases de données par le module objet DBI
  • Applications Web en Perl par le module objet CGI

Participants

Informaticiens ou administrateurs système en environnements Unix/Linux (ce qui comprend MacOSX, Android...) ainsi que l'ensemble de la gamme Windows.

Pré-requis

Connaissances d'un autre langage de programmation tel que C, shell, PHP... et connaissance d'un système d'exploitation (Windows ou Linux/Unix).

Travaux pratiques

Écriture de nombreux scripts en Perl :
  • Manipulation des entrées/sorties,
  • Manipulation des expressions régulières,
  • Calcul sur les grands nombres : comment obtenir en quelques secondes les 1000 premières décimales de ? ?
  • Exploitation des données d'une base de données relationnelle
  • Écriture d'un script CGI en Perl

Programme de la formation

  • Présentation :
    • Le but originel de Perl. Historique du langage
    • Les spécificités du langage Perl
    • Où trouver la documentation officielle
    • Comment installer perl : les différentes distributions et versions
    • Comment exécuter un programme Perl
  • Le langage :
    • Les éléments de syntaxe : commentaires, règles de nommage des identifiants, blocs, enchaînements de ligne, en-tête de script
    • Les modes de déclaration de chaînes de caractères
    • La portée des variables, l'utilisation du mode strict
    • Les données de type $scalaires
    • Les opérateurs de comparaison : en mode numérique et en mode littéral
    • Les opération arithmétiques
    • Les opérations sur les chaînes de caractères
    • Les données de type @tableau (ou tableaux indicés)
    • Les opérations sur les tableaux : les fonctions usuelles
    • L'évaluation d'un tableau en scalaire : le polymorphisme contextuel
    • Les tableaux associatifs (ou %hachages)
    • Les fonctions de parcours : keys, values
    • L'évaluation d'un tableau associatif en tableau indicé
    • Les références sur les tableaux et scalaires : utilisation de la fonction each
    • Les variables d'environnement et les variables spéciales
    • Les structures de contrôle :
      • Les conditions : if, if ... elsif ... elsif ... else ...
      • Les boucles : while, for, until, foreach do.
    • La lecture/écriture des flux d'entrées/sorties : STDIN, STDOUT, STDERR).
  • Les expressions rationnelles (ou expressions régulières) :
    • Le principe
    • Les différents motifs : les méta-caractères, les quantificateurs, les caractères spéciaux
    • L'opération de capture et les références arrières dans un motif
    • Les opérations de recherche et d'extraction
    • Les opérations de substitution
    • Comment travailler avec les classes POSIX supportant les caractères accentués en UTF-8
    • L'application d'un motif en contexte liste.
  • Les fonctions :
    • Comment déclarer une fonction avec passage d'arguments et récupération de résultats
    • Passage de paramètres par valeur et par référence
    • Le prototypage des fonctions
    • La récursivité
    • Les fonctions prédéfinies : chomp, uc, printf...
  • Les Modules :
    • Notion de package et l'espace de nommage
    • Les conventions de nommage des fichiers associés aux modules
    • Les modules pré-installés dans la distribution
    • Les modules accessible via CPAN : trouver et installer un module
    • Comment utiliser un module simple et un module objet. Utilisation des fonctions require et use
    • Comment créer un module simple
    • Comment documenter les modules créés. Utilisation de perldoc
  • Gestion des fichiers et des répertoires :
    • Notion de descripteur de fichier
    • Gestion des fichiers :
      • ouverture en lecture, écriture, lecture et écriture
      • fermeture de descripteur de fichier
    • Comment obtenir des informations : droits d'accès, taille dates de modification par la fonction stat
    • Supprimer un fichier avec unlink
    • L'ouverture de fichiers avec l'opérateur diamant <>
    • La gestion des répertoires :
      • ouverture avec opendir,
      • parcours avec readir ou glob
      • fermeture avec closedir
    • Parcourir récursivement une arborescence
  • Les opérations liées au système d'exploitation :
    • Accéder aux informations du système d'exploitation
    • Adapter un script perl au système sous-jacent par l'utilisation des commandes externes disponibles
    • La gestion des processus :
      • lancement d'un processus sans analyse des informations produites : system, exec
      • contrôle d'un processus par ouverture de ses flux STDIN ou STDOUT
      • contrôle d'un processus par ouverture simultanée de ses flux (fonctions open2 ou open3)
      • utilisation des antiquotes ` `
  • Utilisation des bases de données par DBI :
    • L'intérêt de DBI : indépendance vis-a-vis des solutions de SGBD
    • Les différents types de SGBD supportés
    • La création d'une instance de DBI
    • Le mise en œuvre du comportement transactionnel
    • Exécution de requêtes d'écriture sans retour de la base de données
    • Exécution de requêtes de lecture, les différents modes de fetch
    • Utiliser des requêtes préparées
    • Se protéger de l'injection SQL par la méthode quote
  • Réaliser des applications Web en Perl par le module CGI :
    • Rappel sur le fonctionnement du Web : le client, le serveur, le protocole HTTP et la langage HTML
    • Le principe de la transmission des informations serveur Web vers script CGI par l'environnement
    • Le rôle du module Perl CGI :
      • en réception des données par la mise en forme des paramètres GET et POST
      • en production de code par les méthodes destinées à la génération du HTML
    • Étude d'un cas concret avec production d'un formulaire et analyse des valeurs transmises.