wiki:PerlInitiation

Version 11 (modified by Vincent Caron, 14 years ago) (diff)

--

Perl - Initiation

Ce support de cours s'adresse à des débutants en Perl, et présente l'essentiel du language pour une durée prévue de formation de 2 jours.

1. Contexte

Historique

  • Créé en 1987 par Larry Wall, comme outil de traitement de donnée
  • Mantra 1: "Il y a plus d'une façon de le faire."
  • Mantra 2: "Rendre les choses faciles faciles, et les choses difficiles possibles."
  • PERL: Practical Extraction and Report Language
  • perldoc perlhist

Les cousins

Langage Licence Historique Actualité Popularité Environnement
Perl GPL ou Artistic 1987 5.8.x ++ CPAN, 10.000 modules
Python Python (compatible GPL) 1990 2.4.x +++ Pypi, 1300 packages
Ruby GPL ou Ruby 1995 1.8.x + Rubyforge, 1500 projets
PHP PHP4 (incompatible GPL) 1995 4.4.x/5.1.x ++++ PEAR, 370 packages

2. Installation

Unix

  • Perl est déjà installé ! perl --version
  • Se référer au système de packetage de votre système d'exploitation

Windows

  • Le plus populaire: ActiveState Perl
  • Egalement disponible: Perl pour Cygwin
  • Difficile de se passer de la ligne de commande et d'un bon éditeur

3. Description rapide

  • L'interpréteur (un simple binaire)
  • Invocation d'un script Perl (shebang: #!, ligne de commande)
  • Les modules: Perl et natifs
  • Documentation
    • Générale: perldoc, man
    • Modules: cpan.org
    • Livres: suivez le chameau ! (Camel books chez O'Reilly)

4. Premiers programmes

  • Hello world:
    #!/usr/bin/perl
    
    print "Hello world !\n";
    
  • Expressions, blocs, commentaires
  • Quoting: guillemets, apostrophes

Les variables (scalaires, listes, hashes)

  • Utilisation d'une variable scalaire:
    $hello = "Hello world !\n";
    print $hello;
    
  • Utilisation d'une liste:
    @hello = ("Hello", "world", "!\n");
    print "$hello[0] $hello[1] $hello[2]";
    print $hello[0]." ".$hello[1]." ".$hello[2];
    print join(" ", @hello);
    
  • Utilisation d'un tableau associatif (hash):
    %hello = (debut => "Hello", milieu => "world", fin => "!\n");
    print "$hello{debut} $hello{milieu} $hello{fin}";
    

Manipulation des scalaires

  • Opérateurs artithmétiques (entiers, flottants et chaînes)
    $a = 42; $b = ($a * 5) + 8;
    
  • Concaténation (chaînes)
    $a = "Hello"; $a = $a . " world"; $a .= " !\n";
    
  • Opérateur de comparaison et booléens
    $nombre = 42;
    $mot = "bonjour";
    $egal = ($nombre == 42);
    $equivalent = ($mot eq 'bonjour');